
JVM
文章平均质量分 87
菜就多练少说
这个作者很懒,什么都没留下…
展开
-
Java 中的内存泄漏问题及解决方案
内存泄漏指的是应用程序在执行过程中,由于程序逻辑错误或不当的资源管理,导致某些对象长时间占用内存空间,即使这些对象已经不再使用。由于 JVM 的垃圾回收机制会自动回收不再被引用的对象,理论上不会有内存泄漏的问题。但在某些情况下,程序可能会由于某些错误导致这些对象依然被引用,从而无法被回收,最终导致内存的浪费。// 每次循环都会添加一个新对象在这个例子中,list会不断添加新的Object对象,且list本身并没有被清空或删除。在这种情况下,虽然这些Object对象可能没有被使用,但它们仍然被list。原创 2025-02-20 18:00:00 · 932 阅读 · 0 评论 -
关于JVM垃圾回收中的引用类型:强引用、软引用、弱引用和虚引用
Java 中的四种引用类型各自有其特定的用途和场景,理解它们有助于更好地管理内存、提高程序的性能和可维护性。强引用: 日常编程中的最常用引用类型,简单且有效,无法被GC回收。软引用: 用于缓存等内存敏感的场景,内存充足时不回收,内存不足时回收。弱引用: 适用于短生命周期的对象,在下一次垃圾回收时会被回收。虚引用: 用于资源清理和终结处理,在对象回收时通知应用程序。原创 2025-02-08 14:06:34 · 888 阅读 · 0 评论 -
深入理解JVM结构:Java虚拟机的核心组件解析
JVM 是 Java 语言能够跨平台运行的关键所在,其结构复杂而高效。通过类加载子系统、运行时数据区、执行引擎等组件的协同工作,JVM 实现了 Java 程序的加载和执行。原创 2024-09-04 10:00:00 · 711 阅读 · 0 评论 -
Java中的双亲委派模型以及如何破坏双亲委派
双亲委派模型是一种类加载的机制,它规定一个类加载器在加载类时,首先将加载请求委托给父类加载器,只有当父类加载器无法加载该类时,才由自身尝试加载。这种委派关系是自下而上,层层递进的。启动类加载器(Bootstrap ClassLoader)它是 JVM 自带的类加载器,负责加载Java核心类库,如rt.jar中的类。启动类加载器是用原生代码(C/C++)实现的,不是的子类。扩展类加载器(Extension ClassLoader)由实现,负责加载扩展类库。原创 2024-09-03 18:00:00 · 1295 阅读 · 0 评论 -
深入理解JVM中的垃圾收集器:CMS 和 G1
CMS 和 G1 是 JVM 中两种重要的垃圾收集器,各有优劣。CMS 以低停顿时间和并发处理著称,但在内存碎片和 CPU 开销方面有一定局限性。G1 则通过区域化管理和可预测的停顿时间目标,提供了更现代化的解决方案,特别适合大规模应用。还是那句话,没有最完美的,只有最适合的。我们应根据应用的具体需求,选择合适的垃圾收集器并进行相应的参数调优,以获得最佳的性能表现。原创 2024-09-03 15:30:00 · 1226 阅读 · 0 评论 -
Java JVM 垃圾回收算法详解
JVM 的垃圾回收机制是 Java 程序高效运行的重要保障。了解和掌握垃圾回收的原理、算法和常见收集器,能够帮助开发者优化 Java 应用的性能。在实际项目中,通过选择合适的垃圾收集器并进行合理的调优,可以最大限度地提高内存利用率,减少 GC 带来的性能影响。原创 2024-09-03 11:04:11 · 1005 阅读 · 0 评论