爱豆吧!

idouba@beta.

最简单例子图解JVM内存分配和回收

一、简介 JVM采用分代垃圾回收。在JVM的内存空间中把堆空间分为年老代和年轻代。将大量(据说是90%以上)创建了没多久就会消亡的对象存储在年轻代,而年老代中存放生命周期长久的实例对象。年轻代中又被分为Eden区(圣经中的伊甸园)、和两个Survivor区。新的对象分配是首先放在Eden区,Survivor区作为Eden区和Old区的缓冲,在Survivor区的对象经历若干次收集仍然存活的,就会被转移到年老区。 简单讲,就是生命期短的对象放在一起,将少数生命期长的对象放在一起,分别采用不同的回收策略 Read more →

读书笔记《深入理解Java虚拟机》: 垃圾收集器与内存分配策略

当需要排查各种内存溢出、内存泄露问题时,或者发现gc成为并发瓶颈时,需要对哪些号称“自动化”的内存分配与回收技术进行监控和调节 程序计算器、虚拟机栈、本地方法栈3个区域随现场而生存、灭亡;栈中的栈帧随着方法的进入和退出而有条不紊的执行出栈和入栈操作,每个栈帧分配多说内存基本上在类结构确定下来时就是已知,这几个区域内存分配和回收是确定的。 主流的java虚拟机不采用引用计数算法,最主要原因是很难结局对象之间的相互循环引用问题。 可达性分析算法的基本原理是通过一系列称为GC roots的对象作为起始点,从这 Read more →