準備用一個星期的業餘時間來回憶以及終結下java運行時內存的情況;
1:昨晚特意看了看小馬哥當年視頻中講的內存剖析部分,得出如下結論:
C:方法調用完成,棧裏面爲方法變量(形參)分配的內存消失,局部變量也沒有了,二者在內存類似;
(形參:就是方法需要接受的參數;實參:就是方法實際調用時候被傳入的參數;在開發過程中寫發發的時候,儘量多用型慘,不要用太多的成員變量,不利於方法的複用)
小馬哥講看看圖:
圖1
圖2
上述主要結合圖片講了,普通的創建一個對象時,堆內存與棧內存的分部情況;
2:結合參考文章:
http://blog.csdn.net/shimiso/article/details/8595564
個人想法:當我看到這裏的時候,我自己產生了一個疑惑就是?那麼一個對象的成員變量到底放在了什麼地方?
然後我回憶了昨晚小馬哥的視頻,每一個類都可以把它看爲一個單獨的對象,也就是說一個類代表一個對象類型的表示,那麼成員變量,結合圖1,對象與對象的成員變量存放於堆內存;而如果是常量那麼存放於常量池;
總結:整體理順了下java內存運行時的些情況;還是感覺比較爽的,讓自己對java的認識慢慢變得清晰起來;