JVM
# JVM
# 1. JVM的内存模型(JMM)
JMM是一种抽象的概念,并不真实存在,描述的是一组规范或规则来屏蔽各种硬件和操作系统间的内存访问差异
,以实现上Java程序在任何平台上都能达到一致的内存访问效果
JMM的主要目的就是定义程序中各种变量的访问规则
(即关注将程变量值存储至内存和从内存中取出变量值这样的底层细节)
# 2. 请简单描述一下JVM加载class文件的原理是什么?
# 3. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
# 4. jvm最大内存限制多少?
# 5. jvm是如何实现线程的?
# 6. 请问什么是JVM内存模型?
# 7. 请列举一下,在JAVA虚拟机中,哪些对象可作为ROOT对象?
# 8. GC中如何判断对象是否需要被回收?
# 9. 请说明一下JAVA虚拟机的作用是什么?
# 10. 请说明一下eden区和survial区的含义以及工作原理?
# 11. 请简单描述一下JVM分区都有哪些?
# 12. 请简单描述一下类的加载过程
# 13. 请简单说明一下JVM的回收算法以及它的回收器是什么?还有CMS采用哪种回收算法?使用CMS怎样解决内存碎片的问题呢?
# 14. 什么情况下会发生栈溢出?
# 15. 生产环境服务器变慢,请谈谈诊断思路和性能评估?
# 16. 什么是方法内联?
# 17. 对象是怎么从年轻代进入老年代的?
# 18. safepoint 是什么?
# 19. MinorGC、MajorGC、FullGC 都什么时候发生?
# 20. 栈帧都有哪些数据 (opens new window)?
# 21. Java对象的定位方式
# 22. 说一下堆栈的区别?
# 23. 类文件结构
# 24. 什么是类加载?类加载的过程?
# 25. 什么是双亲委派模型?
# 26. 为什么需要双亲委派模型?
# 27. 什么是类加载器,类加载器有哪些?
# 28. 类的实例化顺序?
# 29. 如何判断一个对象是否存活?
# 30. 可作为GC Roots的对象有哪些?
- 虚拟机栈中引用的对象
- 本地方法栈中Native方法引用的对象
- 方法区中类静态属性引用的对象
- 方法区中常量引用的对象
# 31. 什么情况下类会被卸载?
# 32.强引用、软引用、弱引用、虚引用是什么,有什么区别?
# 33. 内存的分配策略?
# 34. Full GC 的触发条件?
# 35. 垃圾回收算法有哪些?
# 36. 有哪些垃圾回收器?
# 37. 常用的 JVM 调优的命令都有哪些?
# 38. 对象头了解吗?
# 39. 如何排查 OOM 的问题?
# 40. GC是什么?为什么要GC?
# 41. Stop The World?
# 42. Serial 收集器?
# 43. PartNew 收集器?
# 44. Parallel Scavenge?
# 45. Parallel Old 收集器?
# 46. MS 收集器?
# 47. CMS 垃圾回收的步骤?
# 48. CMS 收集器优点?缺点?
# 49. G1 收集器?
# 50. G1 收集器是如何改进收集方式的?
# 51. 虚拟机进程状况工具?
# 52. 虚拟机统计信息工具?
# 53. 说一下 JVM 有哪些垃圾回收算法?
# 54. JVM中的永久代中会发生垃圾回收吗
# 55. 在Java中,对象什么时候可以被垃圾回收
# 56. Java会存在内存泄漏吗?请简单描述
# 57. 说一下 JVM 有哪些垃圾回收器?
# 58. 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?
# 59. 简述分代垃圾回收器是怎么工作的?
# 60. 什么是空间分配担保策略?
# 61. 常见的垃圾回收器算法有哪些,各有什么优劣?
# 62. 如何优化减少Full GC?
编辑 (opens new window)
上次更新: 2022/10/07, 16:20:59