- 博客(21)
- 收藏
- 关注
原创 【从零学习JVM|第八篇】深入探寻堆内存
Java堆回收机制通过自动清理无效对象来管理内存,核心算法包括引用计数法和可达性分析法。引用计数法实时性强但存在循环引用问题,可达性分析通过GC Roots对象(如虚拟机栈引用、静态变量等)判断对象是否存活。Java提供五种引用类型:强引用(不会被回收)、软引用(内存不足时回收)、弱引用(GC运行时回收)、虚引用(仅用于回收通知)和终结器引用(finalize方法调用)。开发者应合理使用引用类型优化内存管理,避免内存泄漏。堆内存参数(-Xms/-Xmx)的设置直接影响程序性能,理解回收机制有助于提升应用稳定
2025-06-12 21:06:12
753
原创 【从零学习JVM|第七篇】快速了解直接内存
Java直接内存是JVM堆外的操作系统内存区域,通过ByteBuffer操作,核心优势是零拷贝和减轻GC压力。它避免了I/O操作时的数据复制,提升大文件传输性能,并减少堆内存占用。但需手动管理释放,否则易内存泄漏,且分配成本较高。使用时需设置内存上限(MaxDirectMemorySize),评估场景合理使用。直接内存适合高性能I/O和大内存管理,但需谨慎管理生命周期。
2025-06-12 16:13:14
669
原创 【从零开始学习JVM | 第六篇】运行时数据区
JVM运行时数据区是Java程序执行的核心内存管理结构,主要包括堆、方法区、虚拟机栈、本地方法栈和程序计数器五大区域。堆是最大且线程共享的区域,用于存储对象实例,由垃圾回收器管理;方法区存储类元数据、常量等共享信息,在JDK8后改为元空间实现;虚拟机栈和本地方法栈均为线程私有,分别处理Java方法和本地方法调用;程序计数器记录线程执行位置。这些区域协同工作,通过不同的内存分配策略支持Java程序运行,其中堆和方法区需特别注意内存溢出问题。理解这些区域的特性对于Java性能调优和内存管理具有重要意义。
2025-06-11 20:28:15
828
原创 【从零学习JVM|第五篇】打破双亲委派机制
文章摘要:双亲委派机制虽能避免重复加载类并保护核心类库安全,但在实际开发中常需打破以满足业务需求。打破该机制主要为了:1)实现模块化系统中不同版本类库共存;2)解决多应用环境下的类冲突;3)支持动态加载/卸载和热部署;4)满足特殊业务需求。实现方法包括:自定义类加载器重写loadClass方法、使用线程上下文类加载器(如JDBC的SPI机制)以及OSGi框架的"本地优先"加载策略。这些方式突破了传统类加载限制,实现了更灵活的类管理,但需权衡安全性与灵活性。
2025-06-10 20:04:08
829
原创 【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
双亲委派机制是Java类加载的核心机制,采用层级委托方式实现类加载。主要包含启动类加载器(Bootstrap)、扩展类加载器(Extension)和应用类加载器(Application)三级结构。其工作流程是:子加载器先委托父加载器尝试加载,只有当父加载器无法完成时才自行加载。这种机制保证了类的唯一性,防止核心API被篡改,同时实现类的隔离。源码中通过loadClass()方法实现逐层委托,findClass()完成具体查找。该机制是Java安全模型的基础,既能避免类重复加载,又能确保核心类库安全。
2025-06-09 21:21:09
1091
原创 【从零学习JVM|第三篇】类的生命周期(高频面试题)
Java类的生命周期包括:加载(将字节码加载到内存,生成Class对象)、连接(验证字节码、准备静态变量内存并赋默认值、解析符号引用)、初始化(执行静态代码块和赋值)、使用(创建实例、调用方法)、卸载(类不再使用时被回收)
2025-06-09 19:40:16
1623
原创 【从零学习JVM|第二篇】字节码文件
摘要:本文介绍了Java字节码文件(.class)的结构与组成。主要内容包括:字节码文件的基本组成(魔数、版本号、常量池等8个部分);各部分的具体作用与存储方式;字节码指令的执行示例(如i++与++i的区别);以及使用jclasslib工具查看字节码的方法。通过分析字节码底层实现,帮助开发者更深入理解JVM工作原理和代码执行机制。文章最后强调了学习字节码对掌握Java底层逻辑的重要性。
2025-06-04 19:19:11
841
原创 【从零学习JVM|第一篇】初识jvm
Java虚拟机(JVM)是现代软件开发的核心组件,Java虚拟机这块的知识很重要,不仅仅是体现在面试当中,更是体现在技术上,如果你想成为一个技术大牛,那这块的知识必须好好理解
2025-06-03 19:14:04
1314
原创 苍穹外卖—万字总结
苍穹外卖写完了,作为我的第一个项目,可谓是收获满满。不管是知识上的收获,还是思维上的收获,都是非常多的,所以我现在回头来好好看看这个项目,总结一下我的这个项目。
2025-04-15 14:18:32
1103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人