日期:2014-05-20  浏览次数:20718 次

freeMemory返回的是heap上还未使用的空间吗?
1、在看点GC方面的东西,发现freeMemory返回虚拟机中的还能够分配给对象的大概值.是不是就是heap上的?

2、我用-Xms讲heap的初始大小置为1024M,但freeMemory只返回976M左右,其他的空间呢?用来放啥了?

3、permanent generation主要放的是描述类和方法的对象以及类和方法本身等这些,我有点搞不清描述类的对象是啥?是一个Class的实例吗?那类本身又是啥(难道是那些字节码?)?


------解决方案--------------------
1: Runtime#freeMemory 指的是堆内存,也就是你所说的 heap
2:JRE 需要加载基本的对象,这些空间被这些对象所占用了
3:permanent generation 这块是 JVM 内存中的持久代,主要存放的是方法区的数据。方法区主要包括:类的元数据,以及方式的元数据。对于类来说,有很多数据啊,比如包名、类名、这个是类还是接口、类的修饰符、字段信息、方法信息等等类的元数据。
------解决方案--------------------
Runtime#freeMemory 指的是堆内存