我想问下关于内存堆的问题~~
1. Java堆内存是操作系统分配给JVM的内存的一部分。
2. 当我们创建对象时,它们存储在Java堆内存中。
3. 为了便于垃圾回收,Java堆空间分成三个区域,分别叫作New Generation, Old Generation或叫作Tenured Generation,还有Perm Space。
以上是Java堆内存中的10个要点中的三个。
我想问下有没有更详细解释这3个要点的?
------解决方案--------------------
------解决方案--------------------Java具有可移植性的原因是有JVM,JVM能够虚拟出一台目标机,所有字节码都是在虚拟出的目标机上运行的。而堆属于JVM内存的一部分,主要用于存放类、方法、常变量等。
一般new出来的对象都放在堆中,因为难以预先估计对象大小,在堆中可以进行动态分配。
堆中分为这三代,是为了垃圾收集,在节省空间的同时也不会产生循环垃圾。可以参考垃圾收集的分代垃圾收集机制。