调优主要在堆中:
JVM中如何判断垃圾:可达性分析算法(用来判断对象是否存活)
根:GCRoots
切断以后就可以被回收了。而可达意味着不是垃圾,不可达意味着是垃圾。
python中用的是计数器法,如果有对象引用它,就计数,计数为0,则为垃圾。但是相互引用就有问题了。
为什么要根可达算法?
Long l = 1200L; 涉及到装箱拆箱操作,本质上等于Long l = Long.valueof(1200);会new Long();ß ß
由于成员变量的引用不是根,所以Long对象不是根。总共有四个对象。
断点处:共有个(6-2=)4个对象符合垃圾回收条件
注:如果是12L,会使用cache。缓存是同一个对象。
JVM调优工具jdk中的工具:
-XX: 用来开发、测试