jvm 堆棧概念

關於JVM的工做原理以及調優是一個嚮往已久的模塊,終於有幸接觸到:http://pengjiaheng.iteye.com/blog/518623html

那就順着這個思路,來梳理一下本身看到後的結論和感想。java

 

首先,墊些基礎,下面會用到編碼

1.Java基本數據類型的長度spa

類型 字節 表示範圍 包裝類
byte(字節型) 1 -128~127 Byte
short(短整型) 2 -32768~32767  Short
int(整型) 4 -2147483648~2147483647 Integer
long(長整型) 8 -9223372036854775808 ~ 9223372036854775807 Long
float(浮點型) 4 -3.4E38~3.4E38 Float
double(雙精度型) 8 -1.7E308~1.7E308 Double
char(字符型) 2 從字符型對應的整型數來劃分,其表示範圍是0~65535  Charater
booealn(布爾型) 1 true或false Boolean

2.解釋【位-字節-字符】概念線程

關於編碼方式和一個字符幾個字節的詳細解釋:http://www.cnblogs.com/God-/p/6006749.htmlhtm

具體的一個字符是幾個字節,就要看具體的編碼方式了,能夠看看上面這個詳細的解釋!對象

這裏只須要清楚,上面基本數據類型,例如:short是2個字節的長度,一個字節是8bit(位),那2個字節就是16位,也就是short能表示的數據範圍是(2^16)-1次方也就是65536-1的範圍內,也就是-32768-32767blog

 

3.java中值傳遞和參數傳遞的問題遞歸

正好以前一段時間有http://www.cnblogs.com/sxdcgaq8080/p/7093462.html接口

能夠做爲參考

 

 

接着

談談主題,堆與棧的概念(參考:http://pengjiaheng.iteye.com/blog/518623)

1. 棧是運行時的單位,而堆是存儲的單位

    棧解決程序的運行問題,即程序如何執行,或者說如何處理數據;堆解決的是數據存儲的問題,即數據怎麼放、放在哪兒。

    在Java中一個線程就會相應有一個線程棧與之對應,這點很容易理解,由於不一樣的線程執行邏輯有所不一樣,所以須要一個獨立的線程棧。而堆則是全部線程共享的。棧由於是運行單位,所以裏面存儲的信息都是跟當前線程(或程序)相關信息的。包括局部變量、程序運行狀態、方法返回值等等;而堆只負責存儲對象信息。

 

2.堆中存什麼?棧中存什麼

    堆中存的是對象。

 棧中存的是基本數據類型和堆中對象的引用。

  一個對象的大小是不可估計的,或者說是能夠動態變化的,可是在棧中,一個對象只對應了一個4btye的引用(堆棧分離的好處)。

 

 3.爲何不把基本類型放堆中呢?

  上面有基本數據類型的大小,佔用的空間通常是1~8個字節——須要空間比較少,並且由於是基本類型,因此不會出現動態增加的狀況——長度固定,所以棧中存儲就夠了

 

 

 

 

 

4.本地方法

這裏既然說到了本地方法棧,就簡單了介紹一下本地方法

簡單地講,一個Native Method就是一個java調用非java代碼的接口。一個Native Method是這樣一個java的方法:該方法的實現由非java語言實現,好比C。

具體參考:http://www.cnblogs.com/langtianya/p/3459647.html

 

 

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

後話:

堆和棧中,棧是程序運行最根本的東西。程序運行能夠沒有堆,可是不能沒有棧。而堆是爲棧進行數據存儲服務,說白了堆就是一塊共享的內存。不過,正是由於堆和棧的分離的思想,才使得Java的垃圾回收成爲可能。

Java中,棧的大小經過-Xss來設置,當棧中存儲數據比較多時,須要適當調大這個值,不然會出現java.lang.StackOverflowError異常。常見的出現這個異常的是沒法返回的遞歸,由於此時棧中保存的信息都是方法返回的記錄點。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

相關文章
相關標籤/搜索