xmind图
1、线程
2、JVM 内存区域
2.1. 程序计数器(线程私有)
2.2. 虚拟机栈(线程私有)
2.3. 本地方法区(线程私有)
2.4. 堆(Heap-线程共享)-运行时数据区
2.5. 方法区/永久代(线程共享)
3、JVM 运行时内存
3.1. 新生代
Eden 区
ServivorFrom
ServivorTo
MinorGC 的过程(复制->清空->互换)
eden、servicorFrom 复制到 ServicorTo,年龄+1
清空 eden、servicorFrom
ServicorTo 和 ServicorFrom 互换
3.2. 老年代
3.3. 永久代
JAVA8 与元数据
4、垃圾回收与算法
4.1. 如何确定垃圾
引用计数法
可达性分析
4.2. 标记清除算法(Mark-Sweep)
4.3. 复制算法(copying)
4.4. 标记整理算法(Mark-Compact)
4.5. 分代收集算法
新生代与复制算法
老年代与标记复制算法
5、JAVA 四种引用类型
5.1. 强引用
5.2. 软引用
5.3. 弱引用
5.4. 虚引用
6、GC 分代收集算法 VS 分区收集算法
6.1. 分代收集算法
在新生代-复制算法
在老年代-标记整理算法
6.2. 分区收集算法
7、GC 垃圾收集器
7.1. Serial 垃圾收集器(单线程、复制算法)
7.2. ParNew 垃圾收集器(Serial+多线程)
7.3. Parallel Scavenge 收集器(多线程复制算法、高效)
7.4. Serial Old 收集器(单线程标记整理算法 )
7.5. Parallel Old 收集器(多线程标记整理算法)
7.6. CMS 收集器(多线程标记清除算法)
初始标记
并发标记
重新标记
并发清除
7.7. G1 收集器
8、JAVA IO/NIO
8.1. 阻塞 IO 模型
8.2. 非阻塞 IO 模型
8.3. 多路复用 IO 模型
8.4. 信号驱动 IO 模型
8.5. 异步 IO 模型
8.6. JAVA IO 包
8.7. JAVA NIO
NIO 的缓冲区
NIO 的非阻塞
8.8. Channel
8.9. Buffer
8.10. Selector
9、JVM 类加载机制
阿里面试如何通关?读懂岗位要求,先用27题带你深入理解JVM
以上核心知识点的具体内容,我已经整理好了,需要的朋友后台私信“JVM”可免费领取!
2020面试题总结JVM篇(27题)
真题警告
什么情况下会发生栈内存溢出?
JVM 的内存结构,Eden 和 Survivor 比例。
JVM 内存为什么要分成新生代、老年代和持久代。新生代中为什么要分Eden 和 Survivor?
JVM 中一次完整的 GC 流程是什么样子的,对象如何晋升到老年代,说说你知道的几种主要的 JVM 参数?
你知道哪几种垃圾收集器,各自的优缺点,重点讲下 cms 和 G1,包括原理,流程,优缺点。
垃圾回收算法的实现原理。
当出现了内存溢出,怎么排错?
JVM 内存模型的相关知识了解多少,比如重排序,内存屏障,happen- before,主内存,工作内存等。
讲讲 JAVA 的反射机制。
你们线上应用的 JVM 参数有哪些?
g1 和 cms 区别,吞吐量优先和响应优先的垃圾收集器选择。
怎么打印线程栈信息。
请解释如下 jvm 参数的含义?
Java 中对象创建的几种方式?
Java 中的对象一定在堆上分配内存吗?
运行时数据中哪些区域是线程共享的,哪些是独享的?
Java 中数组是存储在堆上还是栈上?
Java 对象创建的过程是怎么样的?
怎么获取堆和栈的 dump 文件?
Minor GC 和 Full GC 的触发条件。
在 Java 语言中,可以作为 GC Roots 的对象有什么?
类加载过程。
Java 内存泄漏的场景。
jdk1.8 的虚拟机中内存模型变化。
频繁 GC 的原因。
高并发时,JVM 调优。
System.gc()和 Runtime.gc()的区别。
阿里面试如何通关?读懂岗位要求,先用27题带你深入理解JVM
面试题的答案,我已经整理好了,需要的朋友三连后 扫描下方 可免费领取!