- 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
- Java 中堆和栈有什么区别?
- 描述一下 JVM 加载 class 文件的原理机制?
- GC 是什么?为什么要有 GC?
- 解释 Java 堆空间及 GC?
- 说说JVM 内存区域?
- 怎么获取 Java 程序使用的内存?堆使用的百分比?
- 什么是运行时数据区?
- 什么是方法区/永久代?
- JVM 运行时内存?
- 说说JAVA8的元数据区 ?
- 说说垃圾收集的算法?
- 说说Java中的引用?
- 说说你知道的GC 垃圾收集器?
- Serial 与 Parallel GC 之间的不同之处?
- JVM 类加载机制?
- 说说类加载器?
- 什么是双亲委派?
- 什么时候会触发FullGC?
- 对象分配规则?
- Java对象创建过程?
- 简述Java的对象结构?
- 如何判断对象可以被回收?
- JVM的永久代中会发生垃圾回收么?
- 调优命令有哪些?
- Minor GC与Full GC分别在什么时候发生?
- 常用命令
设定堆内存大小
-Xmx:堆内存最大限制。
设定新生代大小。 新生代不宜太小,否则会有大量对象涌入老年代
-XX:NewSize:新生代大小
-XX:NewRatio 新生代和老生代占比
-XX:SurvivorRatio:伊甸园空间和幸存者空间的占比
设定垃圾回收器 年轻代用 -XX:+UseParNewGC 年老代用-XX:+UseConcMarkSweepGC - 调优工具
常用调优工具分为两类,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日志的工具
JVM面试题
最新推荐文章于 2024-03-08 22:19:32 发布