我知道Java对象,实例变量是在堆中创建并存在的,而局部变量和对象引用是在堆栈中创建并存在的。
“阶级”本身在哪里生活?
我问这个是因为当您创建静态变量时,使用类名称调用它们, e.g。
Math.round()
创建Math类时,它在内存(堆或堆栈)中的位置
加特
答案 0 :(得分:4)
堆的Permgen(永久代)区域......
答案 1 :(得分:2)
Java类存在于Permanent Generation heap
中。此外,实习字符串池也存储在此处。
永久生成堆包含:
答案 2 :(得分:1)
类在PermGen空间中加载,即Heap
答案 3 :(得分:0)
所有类都在PermGen空间中加载
答案 4 :(得分:0)
您可以在此处阅读有关永久生成(存储类,方法等)的更多信息:
http://blogs.oracle.com/jonthecollector/entry/presenting_the_permanent_generation
但是请注意,当您调用静态方法时,Java实际上是在幕后创建对象的内部实例,因此您实际上是在对象的“幕后”全局实例上调用该方法。 / p>