java基本類型:
變量存放在棧區
java引用類型:
變量名存放在棧區,變量內容存放在堆區。
實例一:
int a = 6;
int b = 9;
swap(int x, int y)
{
int tmp = x;
x = y;
y = x;
}
a 與 b 交換失敗,因為方法里復制的是棧區a 與 b。此時的x y和 a b不是同一組。
實例二:
class Data
{
int a = 6;
int b = 9;
}
Data data_1 = new Data();
data_1.a = 6;
data_1.b = 9;
swap(Data data_2)
{
int tmp = data_2.a;
data_2.a = data_2.b;
data_2.b = tmp;
}
a 與 b交換成功,因為data_2只是在棧內存中復制了一個data_1的引用,但data_1 與 data_2所指向的都是同一塊堆內存
新聞熱點
疑難解答