1. 棧描述的是方法執行的記憶體模型。每個方法被呼叫都會建立乙個棧幀(儲存區域性變數、運算元、方法出口等)
2. jvm為每個執行緒建立乙個棧,用於存放該執行緒執行方法的資訊(實際引數、區域性變數等)
3. 棧屬於執行緒私有,不能實現執行緒間的共享!
4. 棧的儲存特性是「先進後出,後進先出」
5. 棧是由系統自動分配,速度快!棧是乙個連續的記憶體空間!
1. 堆用於儲存建立好的物件和陣列(陣列也是物件)
2. jvm只有乙個堆,被所有執行緒共享
3. 堆是乙個不連續的記憶體空間,分配靈活,速度慢!
1. jvm只有乙個方法區,被所有執行緒共享!
2. 方法區實際也是堆,只是用於儲存類、常量相關的資訊!
3. 用來存放程式中永遠是不變或唯一的內容。(類資訊【class物件】、靜態變數、字串常量等)
java陣列記憶體分析
首先學習幾個單詞 index 索引 bounds 邊界 assigned 指定 陣列 相同資料型別的有序集合 陣列也是物件 長度是不可變的,越界報array index out of bounds exception 陣列語法 宣告int a int a 建立 new int 4 初始化 預設初始化...
Java程序記憶體分析
ps aux命令執行結果的幾個列的資訊的含義 user 程序所屬使用者 pid 程序id cpu 程序占用cpu百分比 mem 程序占用記憶體百分比 vsz 虛擬記憶體占用大小 單位 kb killobytes rss 實際記憶體占用大小 單位 kb killobytes tty 終端型別 stat...
java物件占用記憶體分析
前言 空物件佔8個位元組 有資料成員的話,你把資料成員按基本資料型別和物件引用分開統計。基本資料型別按byte boolean 1,char short 2,int float 4,long double 8,累加,然後對齊到8的倍數。物件引用按每個4位元組,累加,然後對齊到8個位元組的倍數。物件占...