1. GC Roots,可达性分析
从GC roots的对象作为起始点,从GC Roots对象开始向下搜索,如果一个对象到GCRoots没有任何引用链相连,则说明对象不可用。即给定一个集合的引用作为根出发,通过引用关系遍历对象图,能被遍历的(可到达的)对象被判断为存活,没有被遍历的就自然被判断为死亡(可以被回收)。
一定是从GC Roots作为起始点的引用链才会判断为存活。
那么哪些可以作为GC Roots对象呢?
2、JVM参数
1. XX参数的:Boolean型
jps -l查看进行
jinfo -flag + 参数类型+进程号
结果中:+表示开启,-表示关闭
设值参数开启:
结果:
2. k,v设值类型
没修过前:
修改后:
MaxTenuringThreshold = 15 这个参数是年轻代升到养老区活过的次数,更改方法类似上面
也可以用-flags同时设值多个值
题外话:-Xms和-Xmx属于XX参数
3.如何查看JVM初始化的参数
java -XX:+PrintFlagsInitial(初始的)
java -XX:+PrintFlagsFinal(修改后的)
那么下面=和:=有什么区别呢?
=号是没有被修改过的默认的,:=是被人为修改或者jvm修改过的