陣列的初始化有兩種方式
//靜態初始化
string str= new string;
//動態初始化
string str2 = new string[5];
記憶體的分配:當陣列初始化完成之後陣列的長度就固定了,在記憶體中通過引用,上述中的str來指向這一塊記憶體。str只是乙個引用,改變它並不能改變記憶體中的陣列。例如將str賦值為乙個新的陣列,並不能改變原來指向的陣列。
通過陣列來看記憶體分配:分清楚陣列引用和陣列物件,陣列變數是乙個引用,儲存在棧內,而陣列物件儲存在堆中。所有區域性變數都是存放棧記憶體;但是引用型別所引用的物件則總是在堆記憶體中。
對於基本型別陣列而言,資料元素的值直接儲存在對應的陣列元素中,因此初始化比較簡單:程式直接先為陣列分配記憶體空間,再將資料元素的值存入對應記憶體裡。
引用型別的陣列元素依然是引用型別,因此陣列元素裡儲存的還是引用,它在堆中指向另一塊記憶體。這塊記憶體裡儲存了該引用變數所引用的物件。
當陣列引用變數指向乙個郵箱的陣列物件之後,程式就可以通過該陣列引用變數來訪問陣列物件。
java陣列記憶體分析
首先學習幾個單詞 index 索引 bounds 邊界 assigned 指定 陣列 相同資料型別的有序集合 陣列也是物件 長度是不可變的,越界報array index out of bounds exception 陣列語法 宣告int a int a 建立 new int 4 初始化 預設初始化...
java 記憶體溢位與記憶體洩露
記憶體溢位 out of memory 是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現out of memory 比如申請了乙個integer,但給它存了long才能存下的數,那就是記憶體溢位。記憶體洩露 memory leak 是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記...
java陣列與集合
陣列 同時儲存多個同型別的資料,陣列的長度是固定的 中括號都是針對陣列的 集合 儲存元素的容器,長度可變 arraylist 單列集合 hashmap集合 雙列集合,無序 存和取的順序不一致 集合 需要導包 鍵 值對,鍵具有唯一性,值可以重複 儲存引用型別的資料 int是資料型別 put 鍵 值 方...