JVM 面试题汇总

JVM内存

1、JVM方法区存储内容 是否会动态扩展,是否会出现内存溢出,出现的原因有哪些?
2、JVM内存分为哪些区域?每个区域都存储哪些数据?一个对象从创建到销毁都是怎么在这些部分里存活和转移的?内存的哪些部分会参与GC的回收?
3、JVM内存分代,Java 8的内存分代改进

垃圾收集

1、常见的垃圾回收算法,Hotspot虚拟机中每种收集器使用的是哪些算法,各种算法的优缺点
2、列举jvm堆溢出和栈溢出的场景
3、JVM垃圾回收机制,何时触发MinorGC、FullGC
4、新生代和老生代的内存回收策略
5、什么时候一个对象会被GC?为什么要在这种时候对象才会被GC?GC策略都有哪些分类?这些策略分别都有什么优劣势?都适用于什么场景?举个实际的场景,让你选择一个GC策略?为什么要选择这个策略?
6、用什么方式可以查看是哪个类占用资源较多
7、JVM 参数都有哪些?GC日志参数、设置各区域大小的参数
8、常用垃圾收集器的优缺点,G1收集器
9、测试环境、生产环境都是怎么配置堆栈内部各分区大小的?为什么这么配置?
10、jvm调优有什么思路;
11、jvm中的栈区一般分配多大,为什么
12、Eden和Survivor的比例分配默认是多少
13、java8中jvm做了哪两个主要的调整
14、在tomcat中如何配置JVM各个区域的内存大小?
15、你有没有遇到过OutOfMemory问题?你是怎么来处理这个问题的?处理 过程中有哪些收获?
16、内存溢出和内存泄漏分别是什么?有什么区别?
17、内存溢出有哪些种类?分别是什么原因引起的?
18、怎样解决内存溢出问题(使用什么工具快速定位)
19、如何查看垃圾回收日志
20、当一个Java程序响应很慢时如何查找问题、
21、当一个Java程序频繁FullGC时如何解决问题、
22、当一个Java应用发生OutOfMemory时该如何解决、
23、如何判断是否出现死锁
24、如何判断是否存在内存泄露

你可能感兴趣的:(实战,Java,并发编程)