对于JVM面试,面试官可以循序渐进从理论、实践各种角度深入,也未必是要求面试者什么都懂。但如果你懂得原理,一定会成为面试中的加分项。
1、字节码篇
什么是Java虚拟机(墨迹天气)
JVM的组成(凡预科技、杭州比智公司)
JVM的组成(字节跳动)
int a = 1;JVM如何取得a的值(圆通)
什么是Java虚拟机(JVM),为什么要使用?(JVM = Japanese Vedio’s Man )(阿里)
1 | 虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。 |
- 说说Java虚拟机的生命周期及体系结构。(阿里)
1 | 虚拟机的启动 |
1 | 虚拟机的退出,有如下的几种情况: |
- 类文件结构有几个部分?(百度)
- 知道字节码吗?字节码都有哪些?Integer x = 5;int y = 5;比较 x == y 都经过哪些步骤?(百度)
- Java中的参数传递时传值呢?还是传引用? (阿里)
- Java中有没有指针的概念? (阿里)
- 为什么不把基本类型放堆中呢? (阿里)
- Java虚拟机中,数据类型可以分为哪几类? (阿里)
2、类的加载篇
双亲委派好处有哪些?(亚信)
JVM底层怎么加载class文件的?(蚂蚁金服)
基本数据类型在JVM中的存储位置?(龙湖地产)
Java 类加载过程?(苏宁)
类加载器双亲委派模型机制?(苏宁)
什么是类加载器,类加载器有哪些?(苏宁)
描述一下 JVM 加载 Class 文件的原理机制?(国美)
什么是tomcat类加载机制?(猎聘)
简单说说你了解的类加载器(拼多多)
可以打破双亲委派么,怎么打破。(拼多多)
深入分析ClassLoader(蚂蚁金服)
双亲委派机制 (蚂蚁金服)
描述一下 JVM 加载 Class 文件的原理机制? (蚂蚁金服)
类加载器的双亲委派模型是什么? (蚂蚁金服)
一面:类加载过程 (蚂蚁金服)
一面:双亲委派机制及使用原因 (蚂蚁金服)
类加载的时机 (百度)
Java 类加载过程? (百度)
类加载器都有哪些?(百度)
简述 Java 类加载机制?(百度)
手写一个类加载器Demo (百度)
Class的forName(“Java.lang.String”)和Class的getClassLoader()的loadClass(“Java.lang.String”)有什么区别? (百度)
JVM中类加载机制,类加载过程,什么是双亲委派模型? (腾讯)
类加载器有哪些? (腾讯)
双亲委派模型介绍一下 (小米)
JVM类加载机制 (滴滴)
一面:讲一下双亲委派模型,以及其优点 (滴滴)
什么是类加载器,类加载器有哪些?(字节跳动)
Java类加载过程 (美团)
描述一下JVM加载class文件的原理机制 (美团)
什么是类的加载? (京东)
哪些情况会触发类的加载? (京东)
讲一下JVM加载一个类的过程 (京东)
JVM的类加载机制是什么? (京东)
类加载器的双亲委派模型是什么? (京东)
双亲委派机制可以打破吗?为什么 (京东)
3、内存篇
3.1 开头内容
JVM的内存结构,及各个结构的内容。(vivo)
详细介绍一下内存结构(墨迹天气)
JVM有那些组成,堆,栈各放了什么东西?(搜狐、万达集团)
JVM的内存模型,线程独有的放在哪里?哪些是线程共享的?哪些是线程独占的?(万达集团)
JVM内存模型有哪些?(龙湖地产)
Java虚拟机中内存划分为那些区域(高德地图)
JVM内存模型(中国计算机研究院、亚信)
讲一下为什么JVM要分为堆、方法区等?原理是什么?(小米、搜狐)
JVM的内存模型,线程独有的放在哪里?哪些是线程共享的?哪些是线程独占的?(菜鸟)
简单说一下JVM内存结构(浪潮)
JVM内存结构(花旗银行)
JVM 内存分哪几个区,每个区的作用是什么?(唯品会)
详解JVM内存模型(360)
JVM内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存。(拼多多)
说一下JVM内存模型吧,有哪些区?分别干什么的? (百度)
JVM的内存结构划分是什么样子的? (支付宝)
JVM 内存分哪几个区,每个区的作用是什么? (蚂蚁金服)
Java虚拟机内存模型能说说吗? (蚂蚁金服)
JVM内存分布/内存结构? (蚂蚁金服)
讲讲JVM分区 (携程)
一面:讲一下JVM内存布局 (滴滴)
Java的内存分区 (字节跳动)
讲讲JVM运行时数据库区 (字节跳动)
JVM内存模型以及分区,需要详细到每个区放什么。 (天猫)
JVM 内存分哪几个区,每个区的作用是什么? (拼多多)
JVM的内存布局以及垃圾回收原理及过程讲一下 (京东)
3.2 程序计数器
- JVM计数器如何记数(京东-物流)
3.3 栈
堆和栈的区别、谁的性能更高(艾绒软件)
栈是如何运行的(OPPO)
JVM有哪些组成,堆,栈各放了什么东西。(新浪)
Java 中堆和栈有什么区别?(国美)
什么情况下会发生栈内存溢出。(360)
栈和堆的区别?(蚂蚁金服)
什么情况下会发生栈内存溢出。 (京东)
Java中,栈的大小通过什么参数来设置? (阿里)
怎么理解栈、堆?堆中存什么?栈中存什么? (阿里)
为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗? (阿里)
说一下什么情况发生栈溢出 (滴滴)
3.4 堆与MinorGC MajorGC
什么时候对象会进入老年代?(顺丰)
初始堆大小和最大堆大小一样,问这样有什么好处?(亚信)
老年代的垃圾回收机制什么时候触发,自动触发的阈值是多少(蚂蚁金服)
新生代的垃圾回收什么时候触发(蚂蚁金服)
堆里面的分区:Eden,survival (from+ to),老年代,各自的特点。(京东-物流)
Minor GC 与 Full GC 分别在什么时候发生?(腾讯)
简述 Java 内存分配与回收策略以及 Minor GC 和Major GC(国美)
Java 堆的结构是什么样子的?(猎聘)
JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor(字节跳动)
什么时候发生Full GC(58)
计算下多长时间触发一次Minor GC(蚂蚁金服)
堆的结构?为什么两个survivor区? (蚂蚁金服)
Eden和Survior的比例分配 (蚂蚁金服)
JVM内存分区,为什么要有新生代和老年代 (小米)
JVM的内存结构,Eden和Survivor比例。 (京东)
JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor。 (京东)
JVM内存分区,为什么要有新生代和老年代? (美团)
JVM的内存结构,Eden和Survivor比例。 (京东)
JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor。 (京东)
堆大小通过什么参数设置? (阿里)
简述 Java 内存分配与回收策略以及 Minor GC 和Major GC (百度)
JVM垃圾回收机制,何时触发Minor GC等操作 (蚂蚁金服)
JVM的一次完整的GC流程(从ygc到fgc)是怎样的(蚂蚁金服)
JVM中最大堆大小有没有限制? (阿里)
描述JVM中一次full gc过程 (腾讯)
3.5 对象分配
什么时候对象会进入老年代?(渣打银行)
什么是空间分配担保策略?(渣打银行)
什么是空间分配担保策略?(腾讯、百度)
什么是空间分配担保策略?(顺丰)
问什么幸存者区15次进入老年区,懂原理吗?(58)
JVM的伊甸园区,from区,to区的比例是否可调?(花旗银行)
JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代(字节跳动)
什么时候对象会进入老年代? (字节跳动)
对象在堆内存创建的生命周期 (蚂蚁金服)
重点讲讲对象如何晋升到老年代,几种主要的JVM参数 (蚂蚁金服)
新生代和老年代的内存回收策略 (蚂蚁金服)
什么时候对象可以被收回? (蚂蚁金服)
3.6 方法区
JVM的永久代中会发生垃圾回收么?(腾讯)
JVM的永久代中会发生垃圾回收吗? (美团)
3.7 总结
讲一下为什么JVM要分为堆、方法区等?原理是什么?(UC、智联)
JVM的分区了解吗,内存溢出发生在哪个位置 (亚信、BOSS)
简述各个版本内存区域的变化?(猎聘)
Java8的内存分代改进 (蚂蚁金服)
JVM的内存模型,Java8做了什么修改 (天猫)
OOM的错误,StackOverFlow错误,permgen space的错误 (蚂蚁金服)
3.8 String
- new string()是放在哪里,还放在哪里?(搜狐、万达集团)
4、对象内存布局篇
new对象流程?(龙湖地产)
对象创建方法,对象的内存分配,对象的访问定位。(360安全)
Java对象头里有什么 (蚂蚁金服)
对象在JVM中是怎么存储的? (美团)
对象头信息里面有哪些东西? (美团)
二面:Java对象头里有什么 (蚂蚁金服)
5、GC篇
5.1 概述
讲讲JVM的gc (携程)
GC是什么?为什么要有GC? (蚂蚁金服)
什么情况下触发垃圾回收? (阿里)
5.2 垃圾回收器
常见的垃圾回收器算法有哪些,各有什么优劣?(网易)
常见的垃圾回收器算法有哪些,各有什么优劣?(阿里-天猫、UC)
有哪些垃圾回收方法,jdk8的垃圾收集器是什么?(搜狐、万达集团)
G1原理。(亚信)
几种垃圾回收器(亚信)
垃圾回收器有哪些?都有哪些算法来实现?项目中用的垃圾回收器是什么?(平安)
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?(平安)
你知道那些垃圾回收器(高德地图)
有些垃圾方法,8的垃圾收集器是什么。(新浪)
GC 收集器有哪些?CMS 收集器与 G1 收集器的特点。
请问吞吐量的优化和响应优先的垃圾收集器是如何选择的呢?(滴滴)
你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。(拼多多)
CMS 收集器与 G1 收集器的特点。 (蚂蚁金服)
G1回收器讲下回收过程 (蚂蚁金服)
你知道哪几种垃圾回收器,各自的优缺点,重点讲一下cms和g1,包括原理,流程,优缺点 (蚂蚁金服)
CMS特点,垃圾回收算法有哪些?各自的优缺点,他们共同的缺点是什么? (天猫)
讲一下CMS垃圾收集器垃圾回收的流程,以及CMS的缺点 (抖音)
Java的垃圾回收器都有哪些,说下g1的应用场景,平时你是如何搭配使用垃圾回收器的 (滴滴)
说几个垃圾回收器,cms回收器有哪几个过程,停顿几次,会不会产生内存碎片。老年代产生内存碎片会有什么问题。 (小米)
JVM有哪三种垃圾回收器? (阿里)
吞吐量优先选择什么垃圾回收器?响应时间优先呢? (阿里)
常见的垃圾回收器算法有哪些,各有什么优劣? (字节跳动)
CMS和G1了解么,CMS解决什么问题,说一下回收的过程。(字节跳动)
CMS回收停顿了几次,为什么要停顿两次。(字节跳动)
CMS过程是怎样的?内部使用什么算法做垃圾回收? (美团)
g1和cms区别,吞吐量优先和响应优先的垃圾收集器选择 (携程)
5.3 垃圾回收算法
什么时候对象可以被收回?(阿里-闲鱼)
什么时候对象可以被收回?(拼多多)
GC算法都有哪些?他们之间的区别是什么?(菜鸟)
JVM的常用的GC算法(高得地图)
JVM的垃圾回收为什么采用分代GC。跟语言有关系吗?(阿里-钉钉)
分代的意义说一下 (阿里-钉钉)
而全GC时间较长 分代GC可以大大降低GC时间而且也可以保证heap不会过快增长(墨迹天气)
GC垃圾回收机制算法(数信互融科技发展有限公司)
GC的算法,复制算法和标记清除的优缺点?(迪原创新)
常用的GC算法,如何确定哪些是要被清除的哪些是不能被清除(网易邮箱、美团)
垃圾回收机制的几种回收算法(亚信)
GC算法都有哪些?他们之间的区别是什么?各自的适用场景?(B站)
GC分代算法(花旗银行)
新生代的垃圾回收什么时候触发(花旗银行)
老年代的垃圾回收机制什么时候触发,自动触发的阈值是多少(花旗银行)
GC 的两种判定方法:(360安全)
GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?(腾讯)
如何判断一个对象是否存活?(唯品会)
Java 中垃圾收集的方法有哪些?(苏宁)
你是用什么方法判断对象是否死亡?(滴滴)
说一下GC算法,分代回收说下 (百度)
垃圾收集策略和算法 (百度)
说一下gc算法,分代回收说下 (百度)
说一下gc算法,分代回收说下 (百度)
JVM有哪些回收算法,对应的收集器有哪些? (蚂蚁金服)
如何判断一个对象是否存活? (蚂蚁金服)
JVM GC算法有哪些,目前的JDK版本采用什么回收算法 (蚂蚁金服)
垃圾回收算法的实现原理。 (京东)
JVM场景问题, 标记清除多次后老年代产生内存碎片,引起full gc,接下来可能发生什么问题。 (小米)
Java怎么进行垃圾回收的?什么对象会进老年代? 垃圾回收算法有哪些?为什么新生代使用复制算法? (京东)
讲一下JVM中如何判断对象的生死? (京东)
如何选择合适的垃圾收集算法? (阿里)
讲一讲垃圾回收算法。 (阿里)
JVM有哪些回收算法,对应的收集器有哪些? (拼多多)
讲讲你知道的垃圾回收算法 (字节跳动)
Java对象的回收方式,回收算法。 (字节跳动)
JVM垃圾收集算法与收集器有哪些? (京东)
JVM场景问题, 标记清除多次后老年代产生内存碎片,引起full gc,接下来可能发生什么问题? (美团)
分代垃圾回收过程? (美团)
GC如何分代的?各代用什么算法回收? (美团)
5.4 其 它
GC回收的是哪部分的垃圾?(vivo)
什么是内存泄漏和什么是内存溢出(陌陌)
Java存在内存泄漏吗,内存泄漏的场景有哪些,如何避免(百度)
SafePoint 是什么(360安全)
Java 中会存在内存泄漏吗,简述一下?(猎聘)
垃圾回收的优点和原理,并考虑 2 种回收机制?基本原理是什么?(瓜子)
什么是分布式垃圾回收(DGC)?它是如何工作的?(瓜子)
强引用、软引用、弱引用、虚引用的区别?(字节跳动)
垃圾回收的优点和原理。 (蚂蚁金服)
如何解决内存碎片的问题? (阿里)
垃圾回收机制等 (支付宝)
Java GC机制?GC Roots有哪些? (拼多多)
JVM怎样判断一个对象是否可回收,怎样的对象才能作为GC root (腾讯)
什么是Full GC?GC? major GC? stop the world (腾讯)
System.gc()和RunTime.gc()会做什么事情? (字节跳动)
Java GC机制?GC Roots有哪些? (字节跳动)
哪些部分可以作为GC Root? (字节跳动)
Java GC机制?GC Roots有哪些? (抖音)
Java GC机制?GC Roots有哪些? (京东)
GC是什么?为什么要有GC? (美团)
简述Java垃圾回收机制 (美团)
如何判断一个对象是否存活?(或者GC对象的判定方法) (美团)
垃圾回收的优点和原理。(美团)
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?(美团)
有什么办法主动通知虚拟机进行垃圾回收? (美团)
GC root如何确定,哪些对象可以作为GC Root? (美团)
你开发中使用过WeakHashMap吗?(京东)
6、执行引擎篇
你是怎么指定JVM启动模式?(字节跳动)
那你知道-server和-client的区别吗?(美图)
7、调优工具篇
怎么获取 Java 程序使用的内存?堆使用的百分比?(国美)
讲讲你理解的性能评价及测试指标?(瓜子)
JVM的进程有哪些线程启动,有了解吗?(神州租车)
你使用过Java虚拟机性能监控和故障处理工具吗?(美图)
说说你知道的几种主要的JVM参数(京东)
怎么打出线程栈信息。(字节跳动)
JVM的参数,你知道的说一下 (百度)
8、调优篇
JVM调优调的哪些参数?在哪里写这些参数? (亚信)
说到内存泄漏,问有没有碰到,内存泄漏怎么解决?(拼多多)
常用的性能优化方式有哪些?(百度金融)
内存泄漏是怎么造成的?(拼多多、字节跳动)
虚拟机如何调优?(顺丰)
内存调优怎么调?有几种方式?参数都有什么?(顺丰)
栈溢出导致的原因?如何解决?(搜狐)
JVM调优策略 (杭州鲁尔物联科技有限公司、燕梭金融、汇博云通)
JVM调优调的哪些参数?问这样有什么好处?在哪里写这些参数(浪潮)
几种常用的内存调试工具你知道哪些?(搜狐)
如何优化减少Full GC?(阿里-闲鱼)
当出现了内存溢出,你怎么排错。 (京东)
有实际的JVM性能调优案例吗?重点需要关注哪些核心参数? (滴滴)
OOM说一下?怎么排查?哪些会导致OOM? OOM出现在什么时候 (腾讯)
内存泄漏与内存溢出的区别 (字节跳动)
Java存在内存溢出的现象吗(字节跳动)
Java中会存在内存泄漏吗,请简单描述。 (美团)
JVM性能调优都做了什么?(支付宝)
有做过JVM内存优化吗? (小米)
从SQL、JVM、架构、数据库四个方面讲讲优化思路 (小米)
JVM的编译优化 (蚂蚁金服)
JVM性能调优都做了什么 (蚂蚁金服)
JVM诊断调优工具用过哪些? (蚂蚁金服)
JVM怎样调优,堆内存栈空间设置多少合适.. (蚂蚁金服)
JVM相关的分析工具使用过的有哪些?具体的性能调优步骤如何 (蚂蚁金服)
如何进行JVM调优?有哪些方法? (阿里)
如何理解内存泄漏问题?有哪些情况会导致内存泄露?如何解决? (阿里)
JVM如何调优、参数怎么调? (字节跳动)
从SQL、JVM、架构、数据库四个方面讲讲优化思路 (拼多多)
JVM诊断调优工具用过哪些? (京东)
每秒几十万并发的秒杀系统为什么会频繁发生GC? (京东)
日均百万级交易系统如何优化JVM? (京东)
线上生产系统OOM如何监控及定位与解决? (京东)
高并发系统如何基于G1垃圾回收器优化性能? (京东)