T626code学习笔记之浅谈Java垃圾回收(GC)
来源:互联网 发布:数据库 外部一致性 编辑:程序博客网 时间:2024/06/10 14:58
提起Java垃圾回收(GC)就会提到一个术语-----“全局暂停事件”(stop-the-world)。不管你选择怎样的GC算法,全局暂停事件都会发生。因为GC在执行时,除了线程GC还在执行之外,其他线程都会被中断。
GC分为新生代(young generation)和老年代(old generation)俩个部分。
新生代:大多数新创建的对象都存放在这里。很多对象在创建后很快就会变得不可达,所以很多对象都是在新生代创建,并且很快就消失了。这时候,当一个对象在这个区域消失时,我们就可以说发生了一次“小的GC”(minor GC)。
老年代:那些在新生代中存活下来的,并且没有变成不可达的对象被复制到这里。它通常要比新生代大。由于容量更大,GC发生的次数就没有新生代的频繁,所以当对象从老年代消失时,我们就说发生了一次“大GC”(major GC)或者“全GC”(full GC)。
新生代的组成:
首先,新生代分为3个区域。分别有:一个Eden区、两个存活区(Survivor)。
每个区域执行顺序大概是这样的:
1.大部分新创建的对象都处于Eden区
2.在Eden区域执行第一次GC后,存活下来的对象被移动到其中一个存活区。
3.在Eden区域再次执行GC以后,存活下来的对象继续堆积已经有的对象的那个存活区。
4.一旦一个存活区被存满,存活对象就会被移动到另一个存活区,然后被存满的那一个存活区数据就会被清掉(修改为无数据状态)。
5.如此反复一定次数之后,还处于存活状态的对象被移动到老年区。
存活区总有一个是空的,如果两个存活区域同时都有数据,或者同时为空,这意味着你的系统存在问题了。
...........
@T626code的学习笔记
- T626code学习笔记之浅谈Java垃圾回收(GC)
- Java补完之垃圾回收GC机制学习笔记
- Java学习笔记--垃圾回收GC
- java 垃圾回收机制(GC)学习笔记
- T626code学习笔记之Java机试题(1)
- 【java学习】垃圾回收机制(GC)
- 浅谈gc-垃圾回收
- JAVA垃圾回收与GC浅谈
- Java GC(垃圾回收)
- Java GC(垃圾回收)
- Java GC(垃圾回收)
- Java GC(垃圾回收)
- Java垃圾回收(GC)
- java垃圾回收(GC)
- JVM学习笔记二:GC 垃圾回收
- Java学习笔记之垃圾回收机制
- Java学习笔记之垃圾回收
- Java学习笔记之垃圾回收
- poj 3176 动态规划
- 英语单词中后缀-ee和-er的区别
- 单例模式——c++实现线程安全的单例类
- Java恢复练习笔记
- Oracle数据库学习笔记之异常处理,存储过程
- T626code学习笔记之浅谈Java垃圾回收(GC)
- poj 3264 (summerIII O) j树状数组 ST表(区间最值查询)
- Retrofit使用详解
- 【PostgreSQL-9.6.3】extract函数
- java中wait/notify机制
- gittortoise 记住账号密码
- 16. 3Sum Closest
- CRT显示器
- Oracle数据库学习笔记之函数,包