JVM面试常问基础总结

2017-10-28  本文已影响0人  ZYJ2016

1. JVM内存模型

JVM内存模型

2. OOM

OutOfMemoryError 异常的简称。

引起OOM的原因?

内存溢出、内存泄露。

内存溢出:申请不到可用空间,需要进行垃圾回收解决;
内存泄露:无用的对象还继续存活,且垃圾回收也无法将其回收。

OOM与SOF的区别?

3. GC(垃圾回收)

如何判断对象是否存活?

可以作为GC Roots的对象:

引用

Finalize方法

任何一个对象的finalize()方法都只会被系统自动调用一次,如果对象面临下一次回收,它的finalize()方法不会被再次执行。

4. 垃圾收集算法

标记-清除算法、 标记-整理算法、复制算法、分代收集算法

5. 垃圾收集器

垃圾收集器关系的两个问题:

  1. 停顿问题:进行垃圾收集时,必须暂停其他所有的工作线程。
  2. 吞吐量:就是CPU用于运行用户代码的时间与CPU总消耗时间的比值。

6. 内存分配策略

  1. 对象优先在新生代Eden分配;
  2. 大对象直接进入老年代;
  3. 长期存活的对象将进入老年代;
  4. 动态对象年龄判定;
  5. 空间分配担保。
上一篇下一篇

猜你喜欢

热点阅读