Java学习笔记210301

文章具体链接
文章具体链接

堆内存逻辑分区(不适用不分代垃圾收集器)

image-20210301144546206

jvm 内存空间

image-20210301145711713

注意:

一个进程都有一套方法区和堆
一个线程都有一套Java虚拟机栈和程序计数器

各空间详解

image-20210301150548679

image-20210301150841856

img

image-20210301151012040

image-20210301150713776

image-20210301151159632

image-20210301151625877

image-20210301151821164

image-20210301152825611

指针碰撞

image-20210301154850520

TLAB (指针碰撞的解决思路)

TLAB的全称是Thread Local Allocation Buffe,线程本地分配缓存区。

image-20210301155425935

逃逸分析

image-20210301160618259

image-20210301160709230

img

标量替换

栈上分配

image-20210301165930817

同步消除

image-20210301170027420

对象创建过程,在jvm层面的内存分配;流程图

image-20210301170545945

只要是分代模型,一定是成对出现,常见的组合有3种

jdk1.8可用分代模型,也可不用分代模型

image-20210301171243283

Serial ( SWT)

属于单线程回收

image-20210301171615192

会造成卡顿的现象,是因为业务线程被暂停,垃圾回收线程在工作。JVM调优应该极力避免的现象。

Parallel Scavenge

单线程回收不够的情况下,可以使用Parallel Scavenge,属于多线程回收

image-20210301172618386

ParNew

为了配合CMS的使用,对Parallel Scavenge做了一些改进,就是ParNew

使用多个GC线程的复制收集器来自“ Parallel Scavenge”,因为它具有增强功能,可用于例如,“ ParNew”执行所需的同步,以便它可以在CMS的并发阶段运行。

image-20210301175351245

CMS (concurrent mark sweep 并发标记清除)

image-20210301175842829

工作线程与回收线程同时进行

594082957)]

CMS (concurrent mark sweep 并发标记清除)

[外链图片转存中…(img-uhhwJ9NO-1614594082957)]

工作线程与回收线程同时进行

image-20210301180538636

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丢了尾巴的猴子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值