联联面试java面试知识点
2021-10-11 20:26:08 8 举报
AI智能生成
登录查看完整内容
联联面试
作者其他创作
大纲/内容
新建对象存放的地方
复制交换法 ***
经常发生minor GC
空间不够大装不下新对象会直接放到老年代
EDEN 8/10
存放上一次GC存活的对象
survive From 1/10
存放一次GC过程中存活的对象
survive To 1/10
新生代 1/3
装的老对象
标记清除算法***
时间长
活对象超出内存OOM
满了会GC
老年代 2/3
使用本地内存
java8被元空间替代
存放CLASS和元数据
GC不会清理 CLASS增多在最后导致OOM
永久代
组成
堆
循环引用无法回收
引用计数法
虚拟机栈(栈帧中的本地变量表)中引用的对象
方法区中的类静态属性引用的对象
方法区中常量引用的对象
本地方法栈中JNI(即一般说的Native方法)中引用的对象
GCroots
两次标记才可回收
可达性算法
先标记后清除
造成内存碎片化,无法装大对象
标记清除算法
可用内存减半
效率低需要全量复制存活对象
复制算法
普遍使用
to 年龄大于15就会进入老年代
新生代
新 、老生代算法不同
分代收集算法
互不干扰
可以单独控制回收某个区
分区单独回收
减少GC停顿时间
分区收集算法
垃圾回收与算法
weak reference
GC必定回收
弱引用
最常见的引用
给一个变量赋值对象
造成OOM的主要原因
强引用
soft reference
GC时内存不够就会回收
软引用
PhantomReference 类
必须和虚引用队列一起使用
用来跟踪对象的垃圾回收状态
虚应用
java四类应用
单线程
client模式下的默认收集器
serial
多线程版本的 serial
parnew thread 参数可调
默认cpu核数的线程
server模式下的默认收集器
par new
多线程
保证程序运行的时间除以运行时间和垃圾回收时间的和为一个固定比例
可以控制吞吐量
效率高
. Parallel Scavenge
新生代专用
标记整理算法
serial old
Parallel Old
停顿时间非常短
标记与GC roots直接关联的节点
需要暂停系统
时间非常短
初始标记
继续GC root的寻找可达节点
不阻塞 和用户线程一起工作
并发标记
修订之前过程中 变动的
阻塞工作线程
重新标记
进行清除工作
不阻塞工作线程
并发清除
运行过程
cms收集器
老年代专用
最先进
标记整理没有碎片
可以控制停顿时间
固定分区
优先回收垃圾最多的
优先级回收
G1
通用
垃圾回收器
jvm
1.新建状态
2.就绪状态
3.运行状态
4.阻塞状态
5.线程死亡
线程生命周期
Subtopic
线程
Main Topic
联联面试知识点
收藏
0 条评论
回复 删除
下一页