java中什麼叫引用,引用數據類型和基本數據類型是怎樣分配內存空間的

這篇寫得很好,以下內容也都取自於這篇大佬的博客

https://blog.csdn.net/qq_14989227/article/details/79589342

1.首先,說一下什麼叫變量:

變量就是計算機內存中的一小塊內存單元,儲存在這一小塊內存單元中的值叫做變量的值。

例如 int a = 1;

a 就是變量名, 1 就是變量值。

而當一個變量指向一個對象時,這個變量就叫做引用變量

比如 A a = new A();

a就是一個引用變量, 它指向了一個A對象,也可以說它引用了一個A對象,我們通過操作這個a來操作A對象

引用類型數據在被創建時,首先要在棧上給其引用(句柄)分配一塊內存,而對象的具體信息都保存在堆內存上,然後由棧中的引用指向堆內存中的對象的地址。而基本數據類型被創建時,在棧上給其分配一塊內存空間,信息直接存儲在棧上。

以JAVA中的數組爲例,以下是清華JAVA網課中的視頻截圖:

不論是一維數組還是二維數組,原理實際上都是一樣的 int [][] arr = new int[3][4], int [][] arr 會在棧中開闢一塊區域,也就是引用所存儲的區域,而三個數組元素則是存儲在堆中的。堆內存中的三個一維數組首地址先被一個容量是3的數組引用,再被arr指向,這樣arr就可以訪問到 [3][4]中的任何一個元素。

JAVA中的引用數據類型包括:類,接口類型,數組類型,枚舉類型,註解類型,字符串類型。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章