编程语言:Java
JDK21有没有什么稳定、简单又强势的特性?
Java虚拟线程在AJDK21.0.5中得到了进一步优化,解决了死锁(pin问题)等关键问题,提升了性能。通过减少线程创建和上下文切换,虚拟线程显著提高了高并发应用的效率。开发者只需调整线程创建部分代码,即可轻松使用虚拟线程,并可通过线程池实现限流。AJDK还提供了增强的诊断工具,帮助开发者更好地调试虚拟线程问题。
Java plugins with isolating class loaders
在JVM上构建插件系统,通过隔离类加载器避免依赖冲突,确保每个插件拥有独立的依赖环境。定义清晰的插件接口至关重要,避免使用外部库类型,防止内存泄漏。利用SPI机制动态发现并实例化插件,合理设置线程上下文类加载器。插件打包为zip文件,通过S3等渠道分发。缓存机制优化性能,减少类加载开销。插件系统扩展应用功能,隔离依赖,提升部署灵活性。
JAVA流程组件编排术中之道
组件化设计通过拆分复杂逻辑为职责单一的原子组件,有效降低系统复杂性。遵循单一职责、解耦设计等原则,提升组件的复用性和可维护性。流程编排支持串行、并行、条件分支等动态组合,结合规则引擎实现灵活决策。扩展点设计允许在不修改核心流程下,动态适配不同业务需求,增强系统灵活性和可扩展性。
JDK11升级后竟让内存利用率飙升到90%以上?
升级JDK11后,G1GC导致内存利用率飙升至90%以上。通过观察发现,G1GC的Old区未触发回收,内存持续攀升。临时解决方案为重启机器,最终通过调整JVM参数将堆内存缩减至8G,问题解决。G1GC采用分区管理,相比CMS更灵活,但内存占用较高。建议根据容器大小合理设置堆内存,避免内存浪费。
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 没有超时中断任务的能力。现有做法强依赖任务自身的超时实现。本文提出一种异步超时实现方案,解决上述问题。
JDK11升级后内存问题解析
今年天猫国际技术团队计划从4月份开始先升级并应用JDK11。升级后台系统时一切比较顺利,但升级核心应用时出现了两个意外情况,也是比较典型的问题,这里记录一下。
浅析JVM方法解析、创建和链接
上一篇文章《你知道Java类是如何被加载的吗?》分析了HotSpot是如何加载Java类的,本文再来分析下Hotspot又是如何解析、创建和链接类方法的。
如何找出Java进程占用CPU高的元凶
本文记录了一次Java进程CPU占用率过高的问题和排查思路。
你知道Java类是如何被加载的吗?
本文从双亲委派讲到了Class文件的加载,最后又绕回双亲委派,作者认为只有理解了Class的加载机制,才能更好的理解类似双亲委派这样的机制,否则只死记硬背一些空洞的理论,是无法起到由内而外的理解的。
Java代码之美,从遵循样式规范开始
通过阅读本文,你将不仅了解到Java样式规范的重要性,还将掌握如何将这些规范应用到实际开发中,让你的代码变得更加优雅和强大。让我们一起追求编码的艺术,用规范的代码点亮编程的世界。
安卓ART虚拟机Java Hook框架JavaTweak的设计与实现
不依赖xposed实现Java方法Hook。