失效链接处理 |
jvm面试题 PDF 下载
本站整理下载:
提取码:e95u
相关截图:
主要内容:
一.Java 中的垃圾是什么?
答:从垃圾回收的根出发是否可见。根:jvm认为一定有用的东西。
二. 什么是垃圾回收的根?
垃圾回收的根节点。
1. 局部变量
2. 静态变量
3. Native 方法所引用的对象
4. 活动线程,等待中的Monitor(wait,notify, synchronized);
三. 垃圾回收算法:
1 .Mark and Sweep 算法(标记清除算法)。
标记清除算法缺点: 碎片化严重。
2. Compact算法(压缩算法); 缺点:
3. Copy 算法(复制算法); 缺点:
四. Java 分代垃圾回收算法?
基础假设:大部分对象只存在很短的时间。
将内存分为新时代,老生代,持久代。
将新生代分为 Eden, Survivor1,Survivor2 区
新生代存活一定次数会被转入老生代。默认15次
Major/Full GC 对老生代做GC
新生代采用copy算法。
老生代采用Compact 算法。
五:新生代的Minor GC
Eden
Survivor1
Survivor2
参数配置
-XX:NewRatio 老生代(666)/新生代(333)比例,默认2
-XX:SurvivorRatio Eden/Survivor比例,默认是8 (8:1:1)
-XX:MaxTenuringThreshold 新生代转至老生代阈值,默认15
Permanent Generation:持久代。
放置ClassLoader 读进来的Class,除系统 Class外。
放置String.intern 后的结果。
解决OutOfMemoryError: PerGen Space方法。
使用-XX:MaxPerSize =1024M调整。
PermGen Space vs Metaspace
Java 1.8 使用使用Metaspace 取消PermGen Space
String.intern 的结果被放入堆。
Metaspace 默认不设置限制,使用系统内存
六: 谈谈垃圾回收机制?
七: 垃圾回收在什么时候运行?
1.内存满了,分配内存失败时会运行垃圾回收。
2.当调用System.GC 方法时。
|