1.jvm的垃圾定位算法有:引用计算法、可达性分析计算法
2.垃圾回收算法:
标记清除法Mark-Sweep:位置不连续,产生碎片
复制算法Copying:没有碎片,浪费空间
标记整理:没有碎片,效率偏低
3.堆的内存分配:老生代、年轻代(Eden伊甸园区,Survivor幸存区(S0、S1))
垃圾清理时,会发生STW(Stop The World)用户操作会暂停,一般时间很短,当如果老生代发生垃圾回收时(Full GC),时间会很长,用户体验会很差,所以尽量避免。
4.Jvm调优jdk自带的工具为:jvisualvm
在cmd命令执行:jvisualvm,我们打开检测观察代码的运行情况
public class JvmTest {
public static void main(String[] args) {
while(true){
new String();
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}