Java的記憶體分配上,主要分4個塊!一塊是用來裝代碼的,就是編譯的東西。一塊是用來裝靜態變數的,例如用static關鍵字的變數,例如字元串常量。一塊是stack,也就是棧,是用來裝變數和引用類型的!但區別在於,裝了變數以後,變數上是有值的,而引用類型本身在stack上是沒有值的。一塊是heap,也就 ...
Java的記憶體分配上,主要分4個塊!
一塊是用來裝代碼的,就是編譯的東西。
一塊是用來裝靜態變數的,例如用static關鍵字的變數,例如字元串常量。
一塊是stack,也就是棧,是用來裝變數和引用類型的!但區別在於,裝了變數以後,變數上是有值的,而引用類型本身在stack上是沒有值的。
一塊是heap,也就是堆!堆可以一句話概括,裝new出來的東西!
所以綜上所述,基本數據類型都在stack中,而引用類型,變數是放在stack中,真正有內容的東西放在heap中,也就是當new了一個新的引用類型,他就會放在堆中,同時棧中的引用類型變數會指向堆中你new出來的東西!
兩種數據類型:
1)基本數據類型
整數類型(byte/short/int/long)
浮點類型(float/double)
字元類型(char)
布爾類型(boolean)
2)引用類型:類/介面/數組
另外附上2點筆記:
1.初始化java數組的兩種方式:
靜態(給定元素)和動態(給定長度)
2.java數組的靜態特性:
java數組(對象)初始化之後,數組長度不可變;數組對象是創建數組時記憶體分配的一塊空間;
初始化:為數組元素分配記憶體空間,併為每個元素指定初始值;