跳至主要內容

面试-JVM

TenSoFlow...大约 3 分钟面试面试-JVM

面试-JVM

JVM内存分析,解释下堆和栈

问:JVM内存分析,解释下堆和栈

答:JVM内存结构主要分为堆内存、方法区和栈。
1. 堆内存是JVM中最大的一块内存地址。所有new出来的对象都存储在该区域。
2. 栈就是暂存数据的地方,栈中只保存基础数据类型的对象和自定义对象的引用,每个栈中的数据都是私有的,其它栈不能访问。
3. 方法区存放了要加载的类的信息如类名、修饰符、静态变量、构造函数等

类加载机制

问:类加载机制

答:
1. 加载:找到.class文件把文件的二进制字节流读进内存
2. 验证:保证加载的字节码是合法、安全、符合JVM规范的
3. 准备:为类的静态变量分配内存,并设置默认初始值
4. 解析:把符号引用替换成直接内存地址引用
5. 初始化:执行类构造器

类的初始化过程

问:类的初始化过程

答:加载Class文件进内存,为静态变量分配内存并赋值,执行静态代码块。

对象的初始化过程

问:对象的初始化过程

答:分配内存并为成员变量赋默认值,执行成员变量赋值和构造代码块,最后执行构造方法。

父类加子类初始化过程

问:父类加子类初始化过程

答:
1. 父类静态变量 + 静态代码块
2. 子类静态变量 + 静态代码块
3. 父类成员变量 + 构造代码块 + 父类构造方法
4. 子类成员变量 + 构造代码块 + 子类构造方法

对象什么时候可以被垃圾器回收

问:对象什么时候可以被垃圾器回收

答:如果一个或多个对象没有任何引用指向它了,那么这个对象现在就是垃圾,则有可能会被垃圾回收器回收。对象与所有 GC Roots 之间没有任何引用链的会被回收。

JVM垃圾回收算法有哪些

问:JVM垃圾回收算法有哪些

答:
1. 标记清除算法:根据可达性分析算法得出的垃圾进行标记,对这些标记为可回收的内容进行垃圾回收。
2. 标记整理算法:和标记清除算法一样,将存活对象都向内存另一端移动,然后清理边界以外的垃圾。
3. 复制算法:将原有的内存空间一分为二,每次只用其中的一块,正在使用的对象复制到另一个内存空间中,然后将内存空间清空,交换两个内存角色,完成垃圾的回收。

JVM有哪些垃圾回收器

问:JVM有哪些垃圾回收器

答:
1. 串行垃圾收集器
2. 并行垃圾收集器(默认垃圾回收器)
3. GMS并发垃圾收集器
4. G1垃圾收集器

CPU飙高排查方案与思路

问:CPU飙高排查方案与思路

答:使用top命令查看占用CPU情况并拿到进程ID,然后再查看进程中的线程占用CPU信息,并拿到占用较高线程的ID,再根据线程ID找到有问题代码的源码行号。

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.8