面试-JVM
...大约 3 分钟
面试-JVM
JVM内存分析,解释下堆和栈
问:JVM内存分析,解释下堆和栈
答:JVM内存结构主要分为堆内存、方法区和栈。堆内存是JVM中最大的一块内存地址。所有new出来的对象都存储在该区域。栈就是暂存数据的地方,栈中只保存基础数据类型的对象和自定义对象的引用,每个栈中的数据都是私有的,其它栈不能访问。方法区存放了要加载的类的信息如类名、修饰符、静态变量、构造函数等
类的初始化过程
问:类的初始化过程
答:加载Class文件进内存,为静态变量分配内存并赋值,执行静态代码块。
对象的初始化过程
问:对象的初始化过程
答:分配内存并为成员变量赋默认值,执行成员变量赋值和构造代码块,最后执行构造方法。
父类加子类初始化过程
问:父类加子类初始化过程
答:父类静态变量 + 静态代码块
子类静态变量 + 静态代码块
父类成员变量 + 构造代码块 + 父类构造方法
子类成员变量 + 构造代码块 + 子类构造方法
对象什么时候可以被垃圾器回收
问:对象什么时候可以被垃圾器回收
答:如果一个或多个对象没有任何引用指向它了,那么这个对象现在就是垃圾,则有可能会被垃圾回收器回收。对象与所有 GC Roots 之间没有任何引用链的会被回收。
JVM垃圾回收算法有哪些
问:JVM垃圾回收算法有哪些
答:标记清除算法:根据可达性分析算法得出的垃圾进行标记,对这些标记为可回收的内容进行垃圾回收。
标记整理算法:和标记清除算法一样,将存活对象都向内存另一端移动,然后清理边界以外的垃圾。
复制算法:将原有的内存空间一分为二,每次只用其中的一块,正在使用的对象复制到另一个内存空间中,然后将内存空间清空,交换两个内存角色,完成垃圾的回收。
JVM有哪些垃圾回收器
问:JVM有哪些垃圾回收器
答:串行垃圾收集器
并行垃圾收集器(默认垃圾回收器)
GMS并发垃圾收集器
G1垃圾收集器
CPU飙高排查方案与思路
问:CPU飙高排查方案与思路
答:使用top命令查看占用CPU情况并拿到进程ID,然后再查看进程中的线程占用CPU信息,并拿到占用较高线程的ID,再根据线程ID找到有问题代码的源码行号。
Powered by Waline v2.15.8
