Java的記憶體分配
阿新 • • 發佈:2021-10-10
棧記憶體 -> Stack
1. 展示程式的執行流程 -> 方法被呼叫進棧,方法執行完畢出棧
2. 儲存區域性變數 (區域性變數:作用域在一定範圍內的變數)
3. 棧記憶體中方法的執行特點: 先進後出-> 壓棧
4. 棧記憶體的元素特點: 使用完畢立即回收 (每一次程式執行完畢,棧記憶體內乾乾淨淨)
堆記憶體 -> Memory
1. 存new出來的東西
2. 堆記憶體中的資料都有地址 -> 物件的地址值(多個物件地址值不能重複)
3. 堆記憶體中存成員變數(成員變數: 類中方法外的變數)
4. 堆記憶體中物件內部的資料都有預設值
5. 堆記憶體中元素的特點: 堆中資料使用完畢不是立即回收,等到"垃圾回收機制"空閒的時候回收
方法區
1. 位元組碼物件(類的概覽) <- 位元組碼檔案(.class)
2. 常量池(存常量的,JDK7之後常量池從方法區搬到了堆記憶體中)
本地方法區: JDK中有一些被 native 關鍵字修飾的方法叫本地方法
本地方法就是處理和作業系統關聯的功能,本地方法的執行就是在本地方法區;
暫存器 : 跟CPU運算相關