JVM中内存区域
以下参考https://www.cnblogs.com/zhguang/p/3257367.html
https://www.cnblogs.com/nantang/p/5674793.html
访问对象的方式
以下参考 https://www.cnblogs.com/ityouknow/p/5614961.html
对象存活判断
判断对象是否存活一般有两种方式:
引用计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单,无法解决对象相互循环引用的问题。
扫描二维码关注公众号,回复:
3776536 查看本文章
可达性分析(Reachability Analysis):从GC Roots开始向下搜索,搜索所走过的路径称为引用链。当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。为不可达对象。
在Java语言中,GC Roots包括:
虚拟机栈中引用的对象。
方法区中类静态属性实体引用的对象。
方法区中常量引用的对象。
本地方法栈中JNI引用的对象。
垃圾收集(GC)算法
1.标记 -清除法
2.标记-压缩法
3.分区拷贝法
4.分代回收法
如,JVM中的年轻代(Eden区 S1区 S2区)/老年代/永久代
https://www.jianshu.com/p/314272e6d35b