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

image

image

image

image

image

image

image

题目

image

第1题

判断对象是否可以被回收

引用计数法

image
image

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

image

image

image

image

第2题

JVM 参数类型

标配参数

image

X参数(了解)

image

image

XX参数

image

  • 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,查看某个属性是否被激活
image

image

image

  • KV设置类型
    image

image

image

image

image

盘点家底查看JVM默认值

image

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

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

image

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

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

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

image

第3题

常用参数

image
image

image

image

image

image

image

image

image

打印GC收集细节
image
修改配置,然后故意new大对象,触发报错:java.lang.OutOfMemoryError: Java heap space/mark>
image
image
触发GC
image
普通GC
image
full GC
image

image

image

image

image

image

image

image

第4题

强引用

image

image
image

软引用

image

image

image

image

弱引用

image

image

image

HashMap和WeakHashMap
image
image

虚引用

image
image
image

image
image

image

总结

image

image

posted @ 2021-07-03 22:15  卡卡罗特琪琪  阅读(66)  评论(0编辑  收藏  举报