JVM知识点汇总备忘
2021/4/15 10:27:33
本文主要是介绍JVM知识点汇总备忘,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
GC算法
参考文章
Serial
串行,单线程垃圾收集器,STOP the World现象. client 默认新生代算法,实现简单,单核环境效率高复制算法:新生代 8:1:1 minorGc, 1/10分配给suviror幸存者。
ParNew
多线程版本的Serial收集器,多用在server端的新生代收集器
mark&sweep 标记+清除
mark&compact 标记+整理
cms concurrent mark sweep
g1 garbage first
G1 是一款面向服务端应用的垃圾收集器,它没有新生代和老年代的概念,而是将堆划分为一块块独立的 Region。当要进行垃圾收集时,首先估计每个 Region 中垃圾的数量,每次都从垃圾回收价值最大的 Region 开始回收,因此可以获得最大的回收效率。从整体上看, G1 是基于“标记-整理”算法实现的收集器,从局部(两个 Region 之间)上看是基于“复制”算法实现的,这意味着运行期间不会产生内存空间碎片。
每个 Region 都有一个 Remembered Set,用于记录本区域中所有对象引用的对象所在的区域
GC过程
新生代 --minorGC
• MinorGC 的过程(复制->清空->互换),年龄+1,
• 16次还存活移到old区。
• Eden
• from Survivor
• to survivor
老年代–Full GC
• MajorGC 采用标记清除算法
• 大对象、对象的年龄达到老年的标准
PermGen
• 存放 Class 和 Meta(元数据)的信息
垃圾回收算法
• 垃圾确认
• 引用计数法-循环引用问题
• 可达性分析,GC root两次标记确认
• Mark Sweep-标记、清除两个阶段
• 内存碎片化严重
复制算法
• 内存一分为二,满则移动存活的对象到另一半内存,清除当前。
• 利用率低,存活对象多,效率低。
标记整理算法
• 标记阶段
• 整理阶段把存活的对象移动到一端
分代收集算法
• 新生代
• 复制算法,大部分对象要回收,复制的数据量少
• 老年代
• 标记复制算法,回收的对象少,移动的数据少。
四种引用类型
- 强引用
强绑定,不会被GC回收 - 软引用 SoftReference
内存足够时不会回收,不够时会回收 - 弱引用 WeakReference
不管 JVM 的内存空间是否足够,总会回收该对象占用的内存 - 虚引用
PhantomReference 类来实现,它不能单独使用,必须和引用队列联合使用。 虚引用的主要作用是跟踪对象被垃圾回收的状态
Java 内存区域透彻分析
线程内存:java内存模型中的线程的工作内存是CPU的寄存器和高速缓存的一个抽象描述
主内存
数据总线 一致性协议
为了保证共享内存的正确性(可见性、有序性、原子性),内存模型定义了共享内存系统中多线程程序读写操作行为的规范。通过这些规则来规范对内存的读写操作,从而保证指令执行的正确性。它与处理器有关、与缓存有关、与并发有关、与编译器也有关。他解决了CPU多级缓存、处理器优化、指令重排等导致的内存访问问题,保证了并发场景下的一致性、原子性和有序性。
链接
内存模型解决并发问题主要采用两种方式:限制处理器优化和使用内存屏障
JMM
零拷贝(Zero-copy)及其应用详解
参考文章
常用 jvm 参数分析
通过参数 -XX:GCTimeRadio 设置垃圾回收时间占总 CPU 时间的百分比。
通过参数 -XX:MaxGCPauseMillis 设置垃圾处理过程最久停顿时间。
通过命令 -XX:+UseAdaptiveSizePolicy 开启自适应策略。
只要设置好堆的大小和 MaxGCPauseMillis 或 GCTimeRadio,收集器会自动调整新生代的大小、Eden 和 Survivor 的比例、对象进入老年代的年龄,以最大程度上接近我们设置的 MaxGCPauseMillis 或 GCTimeRadio。
参考文章
这篇关于JVM知识点汇总备忘的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南
- 2024-12-21功能权限实战:新手入门指南