Java中堆 棧 方法區分析

2021-09-07 05:20:34 字數 471 閱讀 6552

堆:

堆用於儲存建立好的物件和陣列(陣列也是物件)

jvm只有乙個堆,被所有執行緒共享

對是乙個不連續的記憶體空間,分配靈活,速度慢

棧:

棧描述的是方法執行的記憶體模型。每個方法被呼叫都會建立乙個棧幀(儲存區域性變數、運算元、方法出口等)

jvm為每個執行緒建立乙個棧,用於存放改執行緒執行方法的資訊(實際引數、區域性變數等)

棧屬於執行緒私有,不能實現執行緒間的共享

棧的儲存特性是「先進先出,後進後出」

棧是有系統自動分配,速度快。棧是乙個連續的記憶體空間

方法區(靜態區):

jvm只有乙個方法區,被所有執行緒共享

方法區實際也是堆,知識用於儲存類、常量相關的資訊

用來存放程式中伊歐尼公園不變或者唯一的內容(類資訊、class物件、靜態變數、字串常量等)

Java中的堆 棧 方法區深入分析

基本概念堆區 1.儲存的全部是物件,每個物件都包含乙個與之對應的 class 的資訊。class 的目的是得到操作指令 2.jvm 只有乙個堆區 heap 被所有執行緒共享,堆中不存放基本型別和物件引用,只存放物件本身。棧區 1.每個執行緒包含乙個棧區,棧中只儲存基礎資料型別的物件和自定義物件的引用...

Java方法過載的區分

測試程式 class computer 構造方法過載 param x public computer int x 根據引數個數不同的方法過載 param a param b return public intmax int a,int b public intmax int a,int b,int ...

java中堆疊的模擬

原帖為 本帖對其稍加改進 class stackdemo public boolean isempty public boolean isfull 獲取堆疊長度 public int getsize 獲取堆疊中存放的元素個數 public int getelementscount 新增元素 publ...