JVM面试题
[toc]
java 为什么能一次编写,处处运行?
JVM 是什么?有哪些组件组成?
常用的 JVM 参数有哪些?
HopSpot 是什么?
JVM 内存区域分类有哪些?
什么是 java 内存模型?
java 内存模型和 JVM 内存模型的区别?
Java8 中的内存结构有什么变化
Java8 中的永久代为什么被移除了?
栈和堆的区别是什么?
java 中有哪几类常量池?
常量池存储在哪些内存区域?
运行时常量池和字符串常量池的区别?
jvm 哪块内存区域不会发生内存溢出?
jvm 中 GC 角度看,堆的分区情况?
哪些情况下存货的对象会进入老年代?
对象都是在堆上分配的吗?
jvm 是怎么加载字节码文件的?
什么是类加载器?
类加载的分类及作用?
什么时候会用到自定义的类加载器?
什么是双亲委派模型?
什么是指令重排序?
指令重排序分为哪几种?过程是怎样的?
怎么避免指令重排序?
synchronized 可以防止指令重排序吗?怎么实现的?
volatile 可以防止指令重排序吗?怎么实现的?
内存屏障是什么?有哪些类型?
GC 是什么?为什么需要 GC?
什么是 Young GC?什么是 FULL GC?什么是 Mixed GC? 他们都什么时候会触发?
一次完成的 GC 流程是怎样的?
什么是 GC 停顿?为什么要停顿?
如何减少长时间的 GC 停顿?
jVM 如何判断一个对象可被回收?
常用的垃圾收集器有哪些?
什么是 CMS 垃圾收集器?CMS 垃圾收集器的适用场景?CMS 垃圾收集器有什么优缺点?
CMS 垃圾收集器能处理浮动垃圾吗?为什么?
什么是 G1 垃圾收集器? G1垃圾器的适用场景,G1 垃圾器有什么优缺点?
G1 垃圾收集器对于堆是怎么划分的?G1 收集器为什么重新划分了堆?
有了 CMS 垃圾收集器,为什么还要 G1 收集器?二者有何区别?如何选择?
G1 收集器是怎么处理大对象的?
G1 收集器为什么新增 Humongous 区域?有什么作用?
G1 垃圾回收过程是怎样的?
G1 回收停顿了几次?为什么?
怎么启动 G1 收集器?有哪些参数设置参数?
常用的垃圾回收算法有哪些?
你怎么理解 GC 引用计数算法?
你怎么理解 GC 可达性分析算法?
你怎么理解 GC 标记清除算法?
你怎么理解 GC 标记整理算法?
你怎么理解 GC 分代算法?
什么是三色标记法?回收流程呢?
什么是浮动垃圾?
什么是内存泄露?
java 中会存在内存泄露吗?为什么会发生内存泄露?如何防止内存泄露?
什么是内存溢出?
内存溢出和内存泄露有什么区别吗?
程序发生了内存溢出怎么处理?
堆什么时候会发生内存溢出?怎么处理?
栈什么时候会发生内存溢出?怎么处理?
元空间中什么时候会发生内存溢出?怎么处理?
直接内存什么时候会发生内存溢出?怎么处理?
一个线程 oom 之后?其他线程还能运行吗?
jvm 调优的目的是什么?如何选择?
常用的 jvm 调优命令有哪些?
常用的 jvm 问题定位工具有哪些?
jvm 中对频繁调用的方法做了哪些优化?
什么是热点代码?
