我对JVM的探究与理解。。。
欢迎来到学习整理,相信自己!
感谢@狂神说,希望帮助更多的朋友
1:常见的JVM面试题
- 请你谈谈对Jvm的理解?Java8虚拟机和之前的变化和更新
- 什么是OOM,什么事栈溢出StackOverFlowError?怎么分析?
- JVM的常用调优
- 内存快照如何抓取,怎么分析Dump文件?
- 谈谈JVM中的内加载器
2:JVM的位置
3:JVM的体系结构
图解:
调优主要调堆
详细图解:
4:类加载器
图解:
-
4.1 作用 加载Class文件
-
4.2 分类:
4.2.1:虚拟机自带加载器
4.2.2:启动类加载器(根)
4.2.3:扩展加载器
4.2.4:应用程序加载器
5:双亲委派机制
1:为了保证安全 APP==》EXC==》BOOT
了解
6:沙箱安全机制(了解下)
7:Native 关键字
重点
8:PC寄存器
9:方法区
10:栈
1.栈:数据结构:先进后出,后进先出 桶
对列:先进先出 (FIFO) 管道
栈+堆+方法区的交互
11:三种JVM
- Sun公司 Hotspot <我们学习的是这个>
- Orcal公司 JRockit
- IBM公司 J9VM
12:堆
Heap
13:新生区,老年区
- 新生区 :一个类诞生和成长,垃圾回收器回收 死亡
- 新生区分为:
1.伊甸园区:所有的对象都是在这个去产生的 new出来了
2。幸存区(0区 1区)
真理:99%的对象都是临时的
14:永久区
元空间
15:堆内存调优
解决OOM:
Jprofiles工具
16:GC常用算法(垃圾回收)
轻GC
重GC
- 标记清除法
- 标记压缩
- 复制算法
- 引用计数器