我知道Java对象,实例变量被创建并存在于堆中,而局部变量和对象引用被创建并存在于堆栈中。java class在哪里?
“班级”本身在哪里住?
我问这个问题是因为当你创建静态变量时,你可以使用类名称
Math.round()
当创建Math类,其中它住在存储器(堆或叠层)的堆的
加特
我知道Java对象,实例变量被创建并存在于堆中,而局部变量和对象引用被创建并存在于堆栈中。java class在哪里?
“班级”本身在哪里住?
我问这个问题是因为当你创建静态变量时,你可以使用类名称
Math.round()
当创建Math类,其中它住在存储器(堆或叠层)的堆的
加特
Java类位于Permanent Generation heap
中。此处还存储了interned字符串池。
常驻代堆包含:
PermGen的(永久代)区域...
类被加载到PermGen空间即堆
所有类都加载在PermGen空间
你可以阅读更多关于常驻代(其中类,方法等的存储位置)位置:但是
http://blogs.oracle.com/jonthecollector/entry/presenting_the_permanent_generation
注意,当你调用一个静态方法的Java做了真正的幕后对象的内部情况,所以你实际上是在该对象的“幕后”全局实例上调用该方法。
我想所有的类都加载到PermGen空间中。 – 2011-04-07 04:57:55