java虚拟机问题总结

一、内存区域与内存溢出异常

  1. java虚拟机运行时数据区?(内存空间分配)
  2. 简述基本概念:程序计数器,java虚拟机栈,本地方法栈,方法区,堆,运行时常量池,直接内存。
  3. 对象创建过程?(不是类加载过程)
  4. java中创建对象的5种方式?
  5. 对象的内存布局?(可以解释为什么wait方法,是对象方法,而sleep方法是线程方法。)
  6. java堆溢出?
  7. OutOfMemoryError异常。出现oom异常的情况有哪些?(可以根据运行时数据区特点来描述)
  8. StackOverflowError异常,虚拟机栈溢出和本地方法栈溢出异常简述?
  9. 本机直接内存溢出(Unsafe分配本机内存)?
  10. java运行时数据区 线程私有和线程公有的分类?
  11. jvm设置参数理解?
    • -Xms
    • -Xmx
    • -Xss
    • -Xmn
    • -XX:MetaspaceSize
    • -XX:MaxMetaspaceSize
    • -XX:NewRatio
    • -XX:SurvivorRatio
    • -XX:+UserParNewGC
    • -XX:+UserParallelOldGC
    • -XX:+UseConcMarkSweepGC
    • -XX:+PrintGC
    • -XX:+PrintGCDetails:
    • -XX:MaxTenuringThreshold:
  12. 出现内存泄漏的情况有哪些?举例说明。(至少6种)
  13. java对象的访问定位?

二、垃圾收集器与内存分配策略

总体来说这三个问题:哪些内存要回收?什么时候回收?如何回收?

  1. 引用计数算法的原理和优缺点?
  2. 可达性分析算法?
  3. 解释GC Roots,列举作为GCRoots对象包括哪几类?(这和导致内存溢出的原因有什么关系?)
  4. 引用的四种类型:强引用,软引用,弱引用,虚引用。
  5. 方法区的回收目的和回收对象(目标)?
  6. 简述垃圾回收算法:标记清除,标记整理清除,复制算法,分代收集算法。
  7. GC 分类:MinorGC、MajorGC、FullGC?
  8. 对象如何进入老年代?
  9. 简述 stop-the-word (简写为STW)?
  10. 垃圾回收器列举及原理简述?
    • Serial收集器
    • ParNew 收集器
    • Parallel(串行) Scavenge(清除)收集器(jdk8 默认)
    • Serial Old收集器
    • Parallel Old收集器
    • CMS 收集器 Concurrent Mark Sweep 并发 标记 清除(重点)
    • G1收集器 Garage-First (因设计了Region的垃圾优先原理)(重点)

G1 收集器问题:
11. G1 如何实现可预测的停顿?
12. 什么是region?
13. 如何避免全区扫描?Remembered Set
14. 什么是OopMap?
15. humongous区?
16. 如何选择收集器?

三、虚拟机性能监控与故障处理工具

  1. 常用命令:jsp、jstat、jinfo、jmap、jstack、jhat
  2. 专业分析工具:Eclipse Memory Analyzer
  3. jvisualvm.exe 性能监控工具
  4. jconsole.exe 监视和管理控制台

四、类文件结构和类加载过程

  1. class类文件结构?
  2. 字节码指令简介?
  3. 指令列表为什么会是有两个 monitorexit 呢?
  4. 类加载器?
  5. 类加载过程?
  6. 类加载时机?
  7. 双亲委派模型,工作 原理和好处?破坏双亲委派模型的实例?
  8. java中创建对象的5种方式?
  9. java对象创建过程。

五、java内存模型和线程

  1. java内存模型结构?
  2. java内存模型中用到的指令列表?

答案参考:点我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值