
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修改过的
java -XX:PrintCommandLineFlags -version,这个参数可以用来查看使用的哪个垃圾回收器(一共七大垃圾回收器)
