數據存儲區
a. 寄存器 :最快的存儲區,位於 處理器內部,數量有限,不能直接控制
b. 堆棧:位於通用RAM(隨機訪問存儲器)中,通過堆棧指針可以從處理器獲得直接支持。堆棧指針下移,分配新內存,上移,釋放內存。創建程序時,java系統必須知道存儲在堆棧內所有項的確切生命週期,以便移動堆棧指針。
c. 堆:通用的內存池(也位於RAM區),存放所有java對象。編譯器不需要知道存儲的數據在堆裏的存活時間,只需要new。
d. 常量存儲:直接存放在代碼內部,永遠不會被改變
e. 非RAM存儲:存活在程序外,可以不受程序控制,例如流對象和持久化對象。把對象轉化成可以存放在其他媒介的事物。
基本類型
a. 對於小的簡單的變量,不用new創建變量,而是創建一個並非是引用的”自動“變量,這個變量直接存儲值,並置於堆棧中,更加高效
b. 8種基本類型:boolean、char、byte、short、int、long、float、double
c. 類的成員是基本數據類型,即使沒有進行初始化,java也會給默認值
javva中的數組
a. java確保數組會被初始化,而且不能再它範圍之外被訪問,這種範圍檢查是以每個數組上少量的內存開銷以及運行時的下標檢查爲代價
作用域
a. 在作用域裏定義的變量只可用於作用域結束之前
b. java對象可以存活於作用域之外,比如
{
String s = new String("a")
}
s在作用域終點就消失了,s指向的String對象仍佔據內存空間,無法在這個作用域後訪問這個對象
static關鍵字
a. 當申明一個事物是static時,意味着這個域或方法不會與包含它的那個類的任何對象實例關聯在一起,static字段對每個類來說只有一份存儲空間