java基礎學習 2 堆和棧

2021-08-16 17:10:15 字數 501 閱讀 5627

引用型別的變數,其記憶體分配在堆上或者常量池(字串常量、基本資料型別常量),需要通過new等方式來建立。

堆記憶體主要作用是存放執行時建立(new)的物件。

(主要用於存放物件,訪問速度慢,可以執行時動態分配記憶體,生存期不需要提前確定)

基本資料型別的變數(int、short、long、byte、float、double、boolean、char等)以及物件的引用變數,其記憶體分配在棧上,變數出了作用域就會自動釋放。

棧記憶體的主要作用是存放基本資料型別和引用變數。棧的記憶體管理是通過棧的"後進先出"模式來實現的。

(主要用來執行程式,訪問速度快,大小和生存期必須確定,缺乏靈活性)

3 例子

class

鴨子  

}  public

class

test  

}  圖例如下:

java基礎知識 棧記憶體和堆記憶體

1.person p new person 定義乙個物件,且使用new關鍵字在堆記憶體中開闢空間。宣告 person p null 在棧記憶體中宣告,只開闢了棧記憶體空間,物件無法使用。例項化物件 new person 在堆記憶體總開闢空間,方可使用。總結就是 1.物件是儲存在棧記憶體中,屬性儲存在...

JAVA中的堆和棧

堆 順序隨意 棧 先進後出 堆和棧的區別 一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧 2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不...

Java 堆和棧的區別

一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結...