JVM面试题

  1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
  2. Java 中堆和栈有什么区别?
  3. 描述一下 JVM 加载 class 文件的原理机制?
  4. GC 是什么?为什么要有 GC?
  5. 解释 Java 堆空间及 GC?
  6. 说说JVM 内存区域?
  7. 怎么获取 Java 程序使用的内存?堆使用的百分比?
  8. 什么是运行时数据区?
  9. 什么是方法区/永久代?
  10. JVM 运行时内存?
  11. 说说JAVA8的元数据区 ?
  12. 说说垃圾收集的算法?
  13. 说说Java中的引用?
  14. 说说你知道的GC 垃圾收集器?
  15. Serial 与 Parallel GC 之间的不同之处?
  16. JVM 类加载机制?
  17. 说说类加载器?
  18. 什么是双亲委派?
  19. 什么时候会触发FullGC?
  20. 对象分配规则?
  21. Java对象创建过程?
  22. 简述Java的对象结构?
  23. 如何判断对象可以被回收?
  24. JVM的永久代中会发生垃圾回收么?
  25. 调优命令有哪些?
  26. Minor GC与Full GC分别在什么时候发生?
  27. 常用命令
    设定堆内存大小
    -Xmx:堆内存最大限制。
    设定新生代大小。 新生代不宜太小,否则会有大量对象涌入老年代
    -XX:NewSize:新生代大小
    -XX:NewRatio 新生代和老生代占比
    -XX:SurvivorRatio:伊甸园空间和幸存者空间的占比
    设定垃圾回收器 年轻代用 -XX:+UseParNewGC 年老代用-XX:+UseConcMarkSweepGC
  28. 调优工具
    常用调优工具分为两类,jdk自带监控工具:jconsole和jvisualvm,第三方有:MAT(Memory Analyzer Tool)、GChisto。
    1.jconsole,Java Monitoring and Management Console是从java5开始,在JDK中自带的java监控和管理控制台,用于对JVM中内存, 线程和类等的监控
    2.jvisualvm,jdk自带全能工具,可以分析内存快照、线程快照;监控内存变化、GC变化等。
    3.MAT,Memory Analyzer Tool,一个基于Eclipse的内存分析工具,是一个快速、功能丰富的Javaheap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗
    4.GChisto,一款专业分析gc日志的工具
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值