java 運行內存剖析

準備用一個星期的業餘時間來回憶以及終結下java運行時內存的情況;

1:昨晚特意看了看小馬哥當年視頻中講的內存剖析部分,得出如下結論:

a:堆內存爲運行時內存;所以new 的東西纔會放在堆內存;
b:方法就是一個靜態代碼,只有調用的時候纔會分配在內存中
C:方法調用完成,棧裏面爲方法變量(形參)分配的內存消失,局部變量也沒有了,二者在內存類似;
(形參:就是方法需要接受的參數;實參:就是方法實際調用時候被傳入的參數;在開發過程中寫發發的時候,儘量多用型慘,不要用太多的成員變量,不利於方法的複用)

小馬哥講看看圖:

圖1


圖2

上述主要結合圖片講了,普通的創建一個對象時,堆內存與棧內存的分部情況;

2:結合參考文章:

http://blog.csdn.net/shimiso/article/details/8595564



個人想法:當我看到這裏的時候,我自己產生了一個疑惑就是?那麼一個對象的成員變量到底放在了什麼地方?

然後我回憶了昨晚小馬哥的視頻,每一個類都可以把它看爲一個單獨的對象,也就是說一個類代表一個對象類型的表示,那麼成員變量,結合圖1,對象與對象的成員變量存放於堆內存;而如果是常量那麼存放於常量池;


總結:整體理順了下java內存運行時的些情況;還是感覺比較爽的,讓自己對java的認識慢慢變得清晰起來;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章