学习笔记:
1.什么是GC?
GC是java虚拟机上的“垃圾回收机制”,目的是为了清理不必存在的垃圾内存,对内存进行释放与回收。
2.HotSpot虚拟机的内存分配技术?
”bump-the-pointer“和“TLABs(Thread-Local Allocation Buffers)”
3.垃圾回收机制中内存的划分
java的对象保存在堆内存中,而堆内存可以按照年代(对象存活时间)划分为三个部分:新生代 、 老年代 、永久代
4.新生代的GC
堆内存中的新生代部分被划分为三个部分:Eden与两个Survivor区。绝大部分对象被创建后会存放在Eden区,当Eden区内存不足时发生GC(新生代GC称为“minor GC”),minor GC使用扫描复制算法,扫描出仍“存活”的对象,将其复制至Survivor1区后清空Eden区,此时如果Survivor1区的内存出现不足,则在Survivor1区也发生GC,将对象复制至Survivor2区并清空Survivor1后对调两个Survivor区的角色,也就是下次Eden区发生GC会将对象复制至Survivor2区。
何时将新生代对象转变为老年代对象呢?
在新生代中对象保存一个计数器(称为年龄,初始值为1),每经历一次minor GC加一,默认当计数器值到达15时,将对象复制至
老年代堆内存。
5.老年代的GC
https://blog.csdn.net/zp522123428/article/details/53635161
http://www.importnew.com/1993.html
https://blog.csdn.net/cy609329119/article/details/51771953
https://blog.csdn.net/d6619309/article/details/53358250
待更新