阳哥讲面试题(三)JVM,GC







题目

第1题
判断对象是否可以被回收
引用计数法


枚举根节点做可达性分析(根搜索路径)




第2题
JVM 参数类型
标配参数

X参数(了解)


XX参数

- Boolean类型(+是开启,-是未开启)
public class HelloGC {
public static void main(String[] args) {
System.out.println("Hello GC");
try {
Thread.sleep(Integer.MAX_VALUE);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
jinfo -flag PrintGCDetails 14352,查看某个属性是否被激活



- KV设置类型





盘点家底查看JVM默认值

有冒号的就是人为修改过的,没有冒号就是之前默认的

-XX:+PrintFlagsInitial(java -XX:+PrintFlagsInitial -version)

-XX:+PrintFlagsFinal(java -XX:+PrintFlagsFinal -version)

边查看,顺便修改metaspace的值,T是class的类名


-XX:+PrintCommandLineFlags(java -XX:+PrintCommandLineFlags -version)

第3题
常用参数









打印GC收集细节

修改配置,然后故意new大对象,触发报错:java.lang.OutOfMemoryError: Java heap space/mark>


触发GC

普通GC

full GC








第4题
强引用



软引用




弱引用



HashMap和WeakHashMap


虚引用






总结



浙公网安备 33010602011771号