我有个问题
例如,当我在方法内声明变量时会发生什么。
void myMethod() {
Ship myShip = new Ship();
}
分配的 myShip 引用在哪里,在堆栈中还是在堆中?
我认为在堆栈中,但我很困惑,因为我正在阅读《J2ME 游戏编程》一书
“Java 类被实例化到 Java 堆上”
所有java类?
提前致谢
myShip
是对一个的引用Ship
目的,myShip
位于方法调用堆栈上,称为“堆栈”。当一个方法被调用时,一块内存被压入栈顶,该内存块有空间容纳该方法的所有基元(int、float、boolean 等)和对象引用,其中包括方法参数。堆是为实际对象分配内存的地方。
So myShip
在堆栈上并且Ship
对象在堆上。
请注意,每个线程都有自己的堆栈,但共享堆。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)