我很好u

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、介绍下 Java 内存区域(运⾏时数据区)

(1)线程私有:程序计数器、虚拟机栈、本地方法栈

(2)线程共享:堆、方法区(元空间)、直接内存

2、说⼀下Java对象的创建过

(1)类加载检查

(2)分配内存

(3)初始化零值

(4)设置对象头

(5)执行init方法

3、对象的访问定位有哪两种⽅式?

(1)句柄

(2)直接指针

4、简单聊聊 JVM 内存分配与回收

5、说⼀下堆内存中对象的分配的基本策略

 

(1)对象优先在 eden 区分配

(2)⼤对象直接进⼊⽼年代

(3)⻓期存活的对象将进⼊⽼年代

(4)动态对象年龄判定

(5)主要进⾏ gc 的区域

6、如何判断对象是否死亡?(两种⽅法)

(1)引用计数法

(2)可达性分析算法

7、简单的介绍⼀下强引⽤,软引⽤,弱引⽤,虚引⽤

8、如何判断⼀个常量是废弃常量?

9、如何判断⼀个类是⽆⽤的类?

(1)该类所有的实例都已经被回收,也就是 Java 堆中不存在该类的任何实例。

(2)加载该类的 ClassLoader 已经被回收。

(3)该类对应的 java.lang.Class 对象没有在任何地⽅被引⽤,⽆法在任何地⽅通过反射访问该类 的⽅法。

10、垃圾收集有哪些算法,各⾃的特点?

(1)标记-清除算法

(2)复制算法

(3)标记-整理算法

(4)分代收集算法

11、HotSpot 为什么要分为新⽣代和⽼年代?

提升GC效率

12、常⻅的垃圾回收器有那些?

 

posted on 2021-07-26 10:31  我很好u  阅读(72)  评论(0)    收藏  举报