1

我的问题或更确切地说问题如下:

1)静态变量驻留在哪里。有些文章说它们驻留在堆上,有些文章说它们位于类定义的 perm gen 区域中,因为它们是类属性。我理解第二个选项可能是正确的,因为它是一个类属性。
2)最终变量在哪里以及它的生命是什么,如果:a)它是原始类型的实例变量b)它是原始类型方法的局部变量c)它是引用类型的实例变量b)它是局部的类型引用方法的变量
3) 如果引用局部变量是本地的,那么它们存储在哪里。
4)在数组的情况下,内存分配是否有任何差异,因为它们是实例变量或局部线程变量。

谢谢

4

1 回答 1

3

Where does the static variable reside

-静态变量位于 中Method Area,而 permgen 位于 Method 区域内。

Where does the final variable reside and what is its life if
Its an instance variable of type primitive

-如果它的实例变量,它停留在Heap inside the Object它所属的对象上,并且由于没有对持有它的对象的引用而超出范围。

Its a local variable of a method of type primitive

-它停留在堆栈上,并且在到达方法右括号时超出范围......

Its an instance variable of type reference

-它停留在Heap inside the Object它所属的对象上,并且超出范围,因为没有对持有它的对象的引用。

Its a local variable of a method of type reference

-它停留在堆栈上,并且在到达方法右括号时超出范围......

Where are the reference local variables stored if they are local.

-在堆栈上...

In case of arrays is there any difference in memory allocation as in they are instance variable or local thread variable.

- Array是一个存储它的对象Heap....但是从Java 6u23版本开始,已经引入Escape Analysis堆栈,而不是堆......

于 2012-09-06T18:37:41.647 回答