
JVM
文章平均质量分 81
秦小扬
技术文章都是个人在学习过程中的总结记录,行文偏口语化,不够全面严谨,不足之处,还望指正。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java 垃圾回收器入门与演进:Serial、CMS、G1
G1 支持 Young GC 和 Mixed GC,但不再固定 Eden,Survivor,Old 区的位置,而是通过 Region 标签动态管理。的场景,在GC完存活对象大于新生代总容量的5%(To Survivor的一半,就是5%),就会触发提前晋升。标记压缩是将存活的对象内存的一端移动,让所有活的对象紧凑地排在一起,然后将剩余的空间全部清除。CMS是第一个实现低延迟的老年代GC,解决了响应时间差的问题,但核心问题太多,最终被G1取代。移动复制对象,需要调整对象引用;只扫描一次,效率高,且没有碎片。原创 2025-06-29 15:54:50 · 1538 阅读 · 0 评论 -
Java 内存结构概览
Metaspace用来存储类的结构信息(类名,方法,字段,继承结构等),常量池,类加载器等,其实Metaspace正常情况下都是安静的,它不像堆那样有对象不断创建和回收,一般情况下,程序启动时加载的类结构是固定的,对 Metaspace 的占用也基本确定。只有在加载新的class或动态生成新的类(动态代理,字节码框架),才会新增Metaspace中的内容。元数据区在1.8以前叫永久代,是JVM内部堆的一部分,但是有几个问题,容量固定,类卸载复杂,和堆共享GC配置,调优麻烦,所以从1.8开始,永久代被废除。原创 2025-06-27 22:33:16 · 1194 阅读 · 0 评论 -
Synchronized 总结
在Java中,为了保证多线程共享资源的原子性,引入了synchronized关键字,但在JDK1.5之前,被实现为重量级锁。原创 2025-06-25 12:09:47 · 306 阅读 · 0 评论