[英]Where do java class live?
我知道Java对象,实例变量已创建并存在于堆中,而局部变量和对象引用已创建并存在于堆栈中。
那么“阶级”本身在哪里生活呢?
我之所以这样问是因为,当您创建静态变量时,会使用类名来调用它们,例如
Math.round()
创建Math类时,它在内存中的位置(堆或堆栈)
迦特
堆的Permgen(永久代)区域...
Java类位于Permanent Generation heap
。内部字符串池也存储在此处。
永久世代堆包含:
类在PermGen空间(即堆)中加载
所有类都加载在PermGen空间中
您可以在此处阅读有关永久代(存储类,方法等的更多信息)的更多信息:
http://blogs.oracle.com/jonthecollector/entry/presenting_the_permanent_generation
但是请注意,当您调用静态方法时,Java实际上是在幕后创建对象的内部实例,因此您实际上是在对象的“幕后”全局实例上调用该方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.