编程语言:Java
Fixrleak: Fixing Java Resource Leaks with GenAI
Java应用中的资源泄漏问题长期存在,可能导致性能下降和系统故障。FixrLeak结合抽象语法树分析和生成式AI,自动检测并修复资源泄漏,显著减少手动操作,提升代码质量。通过try-with-resources等最佳实践,FixrLeak在Uber的Java代码库中高效运行,展示了AI驱动解决方案在大规模软件工程中的潜力。未来将扩展其功能,支持跨函数修复和更复杂的源代码分析。
虚拟线程/有栈协程对于Java的意义
Java在JDK21中引入了虚拟线程,这是一种有栈协程的实现,能够以极低成本创建大量线程,提升资源利用率。虚拟线程支持阻塞IO操作而不阻塞内核线程,保留了同步编程的简洁性和调试友好性。尽管存在某些场景下可能“pin”住载体线程的局限性,虚拟线程仍是Java应对高并发场景的重要工具,降低了开发复杂度。
Java plugins with isolating class loaders
在JVM上构建插件系统,通过隔离类加载器避免依赖冲突,确保每个插件拥有独立的依赖环境。定义清晰的插件接口至关重要,避免使用外部库类型,防止内存泄漏。利用SPI机制动态发现并实例化插件,合理设置线程上下文类加载器。插件打包为zip文件,通过S3等渠道分发。缓存机制优化性能,减少类加载开销。插件系统扩展应用功能,隔离依赖,提升部署灵活性。
JAVA流程组件编排术中之道
组件化设计通过拆分复杂逻辑为职责单一的原子组件,有效降低系统复杂性。遵循单一职责、解耦设计等原则,提升组件的复用性和可维护性。流程编排支持串行、并行、条件分支等动态组合,结合规则引擎实现灵活决策。扩展点设计允许在不修改核心流程下,动态适配不同业务需求,增强系统灵活性和可扩展性。
8G的容器Java堆才4G怎么就OOM了?
最近,一例Java应用的OOM问题引起了关注。尽管Java堆外内存限制在1G,多个ClassLoader加载的netty实例导致实际使用超出限制。通过详细分析发现,netty直接使用UNSAFE.allocateMemory分配内存,绕过Java直接内存API,导致内存未被监控。建议短期内调整Java堆大小以缓解问题,并考虑优化rocketmq-client的内存占用。未来,排查堆外内存问题时,应优先检查netty。
Java21特性解读
本文详细介绍了Java 21的新特性,旨在帮助开发者在升级JVM环境前对新功能有一个全面了解。文章概述当前JDK版本发展情况,并指出LTS版本的重要性,并探讨了多个预览特性和孵化阶段的功能,每个特性都附有详细的动机说明、代码示例及使用建议。
从头到尾说一说Java时间日期体系的前世今生
在计算机领域作者重新梳理了计算机世界里日期时间体系的前世今生。
从Java到Go:“哭笑不得”
首先,Java 的语法是相对严谨的,类、接口、继承、抽象……一大堆的关键字让你在写代码时感觉像是在参加一场语法考试。而 Go 的语法则是简约得让人惊讶。你会发现, Go 里没有类的概念,只有结构体(struct)和接口(interface)。这让很多 Java 的 coder在初入 Go 时感到无所适从...
Java程序中的潜在危机: 深入探讨NullPointerException
从今天的软件系统发展来看,空引用对业界的影响远不止这一数字。它不仅改变了程序设计的方式,也引发了对异常处理、内存管理等众多领域的深入思考。
Java CompletableFuture 异步超时实现探索
JDK 8 中 CompletableFuture 没有超时中断任务的能力。现有做法强依赖任务自身的超时实现。本文提出一种异步超时实现方案,解决上述问题。
如何找出Java进程占用CPU高的元凶
本文记录了一次Java进程CPU占用率过高的问题和排查思路。
你知道Java类是如何被加载的吗?
本文从双亲委派讲到了Class文件的加载,最后又绕回双亲委派,作者认为只有理解了Class的加载机制,才能更好的理解类似双亲委派这样的机制,否则只死记硬背一些空洞的理论,是无法起到由内而外的理解的。
Java代码之美,从遵循样式规范开始
通过阅读本文,你将不仅了解到Java样式规范的重要性,还将掌握如何将这些规范应用到实际开发中,让你的代码变得更加优雅和强大。让我们一起追求编码的艺术,用规范的代码点亮编程的世界。
安卓ART虚拟机Java Hook框架JavaTweak的设计与实现
不依赖xposed实现Java方法Hook。
Java实时代码覆盖率平台的思考与落地实践
近年来各互联网头部、腰部大厂都加大了质量度量体系相关的建设投入,出现了更多致力于测试效能的团队。
Java性能测试利器:JMH入门与实践
编写正确的 Java 微基准测试通常需要防止JVM和硬件在微基准测试执行期间应用的优化,而这些优化在实际生产系统中是无法应用的。这就是JMH(Java 微基准测试工具)可以帮助您实现的功能。