话题编程语言 › Java

编程语言:Java

Fixrleak: Fixing Java Resource Leaks with GenAI

Java应用中的资源泄漏问题长期存在,可能导致性能下降和系统故障。FixrLeak结合抽象语法树分析和生成式AI,自动检测并修复资源泄漏,显著减少手动操作,提升代码质量。通过try-with-resources等最佳实践,FixrLeak在Uber的Java代码库中高效运行,展示了AI驱动解决方案在大规模软件工程中的潜力。未来将扩展其功能,支持跨函数修复和更复杂的源代码分析。

从 Java 到 Go:面向对象的巨人与云原生的轻骑兵

Go语言以“少即是多”为设计原则,通过编译为单一静态二进制文件、25个关键字、接口组合、显式错误处理及轻量级并发模型在云原生领域占据主导。与Java相比,Go的代码组织以包为单元,变量声明灵活,方法函数支持多返回值,接口实现隐式。Go的静态类型和严格类型转换确保代码安全,引用类型如切片、映射和通道简化了数据处理。错误处理采用显式错误返回和panic/recover机制,强调直接处理错误而非依赖异常。

虚拟线程/有栈协程对于Java的意义

Java在JDK21中引入了虚拟线程,这是一种有栈协程的实现,能够以极低成本创建大量线程,提升资源利用率。虚拟线程支持阻塞IO操作而不阻塞内核线程,保留了同步编程的简洁性和调试友好性。尽管存在某些场景下可能“pin”住载体线程的局限性,虚拟线程仍是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占用率过高的问题和排查思路。

首页 - Wiki
Copyright © 2011-2025 iteam. Current version is 2.146.0. UTC+08:00, 2025-10-18 21:26
浙ICP备14020137号-1 $访客地图$