JVM学习笔记

说道JVM不得不提的几个点:

一、java 内存区域:  
1程序计数器 program counter register
2元数据区metaspace 
3本地方法栈native method stacks 
4JVM栈 jvm stacks  
5堆heap   old区   young( eden s0 survivor1)
code cache

二、JAVA内存模型
1程序计数器
一级缓存
二级缓存
三级缓存
主内存


JAVA堆区的垃圾回收
三、垃圾回收机制:
1引用计数法   相互循环引用问题
2可达性分析算法   HotSpot用的这个

四、垃圾收集算法 
名称  理解 不足
1标记-清除算法    Mark-Sweep   效率都不高,大量不连续的内存碎片
2复制算法  当这一块的内存用完了,就将还存活着的对象复制到另外一块上面    内存缩小为了原来的一半,分配担保 (新生代用这种方法)
3标记整理算法Mark-Compact  让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存 无 (老年代)
4分代收集算法Generational Collection    综合上述,新生代用复制,老年代用标记整理算法

到了安全点才能STOP THE WORLD   扩展为安全区

五、垃圾收集器
年轻代YOUNG(复制算法)
1Serial收集器(串行收集器)  它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束
2ParNew 收集器  Serial 收集器的多线程版本 
3Parallel Scavenge收集器 吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间)

老年代TENURED(标记-清除/标记整理算法 )
1Serial Old 收集器 Serial Old 是 Serial 收集器的老年代版本
2Parallel Old收集器 Parallel Old 是 Parallel Scavenge 收集器的老年代版本
3CMS收集器  Concurrent Mark Sweep 是一种以获取最短回收停顿时间为目标的收集器
初始标记(CMS initial mark)并发标记(CMS concurrent mark)重新标记(CMS remark)并发清除(CMS concurrent sweep)
导致吞吐量降低,无法初灵并发清楚阶段产生的浮动垃圾,产生空间碎片

G1(Garbage-First)收集器 将整个 Java 堆划分为多个大小相等的独立区域(Region)(三层标记+整理)
初始标记(Initial Marking)
并发标记(Concurrent Marking)
最终标记(Final Marking)
筛选回收(Live Data Counting and Evacuation)

JVM配置项
-Xms20M  初始化JAVA堆的大小
-Xmx20M  java堆可以扩展到的最大值
-Xmn10M 年轻代大小为
-XSS  每个线程虚拟机栈及堆栈的大小
-XX

 

https://www.cnblogs.com/czwbig/p/11127124.html

https://www.cnblogs.com/czwbig/p/11127159.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值