可能重复:
Whats up with static memory in java?
What is the actual memory place for static variables?
在哪个内存中存在静态变量,局部变量就像对象一样存在于堆中
答案 0 :(得分:2)
当您执行堆转储时,您将获得所有静态值。堆转储显示静态字段位于该类的特殊对象中。您可以使用Unsafe类在Sun / Oracle JVM中访问此“对象”。
虽然本地值在堆栈上,例如。引用,它在堆上引用的任何对象。 (与C ++等语言不同)
e.g。
String hi = "hello";
堆栈中的引用hi
但是Object(大部分内存)都在堆中。
答案 1 :(得分:0)
静态变量 - > perm gen
局部变量 - >堆