JAVA面试大全之JVM和调优篇

目录

1、类加载机制

1.1、类加载的生命周期?

1.2、类加载器的层次?

1.3、Class.forName()和ClassLoader.loadClass()区别?

1.4、JVM有哪些类加载机制?

2、内存结构

2.1、说说JVM内存整体的结构?线程私有还是共享的?

2.2、什么是程序计数器(线程私有)?

2.3、什么是虚拟机栈(线程私有)?

2.4、Java虚拟机栈如何进行方法计算的?

2.5、什么是本地方法栈(线程私有)?

2.6、什么是方法区(线程共享)?

2.7、永久代和元空间内存使用上的差异?

2.8、堆区内存是怎么细分的?

2.9、JVM中对象在堆中的生命周期?

2.10、JVM中对象的分配过程?

2.11、什么是 TLAB (Thread Local Allocation Buffer)?

2.12、为什么要有 TLAB ?

3、GC垃圾回收

3.1、如何判断一个对象是否可以回收?

3.2、对象有哪些引用类型?

3.3、有哪些基本的垃圾回收算法?

3.4、分代收集算法和分区收集算法区别?

3.5、什么是Minor GC、Major GC、Full GC?

3.6、说说JVM内存分配策略?

3.7、什么情况下会触发Full GC?

3.8、Hotspot中有哪些垃圾回收器?

4、问题排查

4.1、常见的Linux定位问题的工具?

4.2、JDK自带的定位问题的工具?

4.3、如何使用在线调试工具Arthas?

4.4、如何使用Idea的远程调试?

4.5、复杂综合类型问题的定位思路?

 5、Java面试题总述


上一篇:JAVA面试大全之集合&IO篇-CSDN博客

致力于一个专栏将Java面试说的清清楚楚,从工作实践角度出发,尽量涵盖Java主流知识点,全面讲述Java面试题。

本篇讲述JVM和调优,总共涵盖4个知识点,29道热点面试题。

1、类加载机制

1.1、类加载的生命周期?

其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定)*。另外注意这里的几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些阶段通常都是互相交叉地混合进行的,通常在一个阶段执行的过程中调用或激活另一个阶段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hao_kkkkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值