大猩猩出山剔交!非火必紅耗溜!
Java進(jìn)階(一)Java內(nèi)存解析 (轉(zhuǎn))
以上便是文章,以下則為后感省容。
這文章講的是java內(nèi)存抖拴,什么堆啊棧啊常量池,像我這種不怎么上心記東西的人的確也不太分的清腥椒。先了解概念阿宅!
堆(heap):? 用來存放由new創(chuàng)建的對象和數(shù)組
1)存是存了,總不能一直存著吧笼蛛,所以java虛擬機(jī)負(fù)責(zé)來自動(dòng)回收堆內(nèi)存產(chǎn)生的垃圾
2)堆中的數(shù)組或者對象洒放,都可以在棧中找到他的另一半(一個(gè)特殊的變量),棧中這個(gè)變量的取值等于數(shù)組或者對象在堆內(nèi)存的首地址滨砍,棧中的一個(gè)變量就成了數(shù)組或者對象的引用變量了(就這么勾搭上了往湿。)
stack(棧): 存放基本數(shù)據(jù)類型and對象或者數(shù)組的引用
1)如果存放的是基本類型(But ! 不能是靜態(tài)變量), 則直接把變量名和值存入stack中的內(nèi)存惋戏。
2)如果是引用類型或者數(shù)組领追, 那就把變量名存入棧, 然后把它指向它new出的對象(存放在堆中)响逢。
3)绒窑??或說靜態(tài)變量怎么好像被遺忘了舔亭!先馬后解決些膨!? // 好像是放在靜態(tài)域?
data segment:? 分為靜態(tài)域和常量域钦铺。
1) 靜態(tài)域:存放對象中用static定義的靜態(tài)成員
2)常量池:在編譯期被確定订雾,并保存在已編譯的.class文件中的一些數(shù)據(jù)。除了包含代碼中所定義的基本類型(int, long)和對象型(String以及數(shù)組的常量值(final), 還包含一些以文本形式出現(xiàn)的符號引用矛洞。比如類和接口的全限定名洼哎;字段的名稱和描述符;
還有幾個(gè)例子缚甩。 - -? 有點(diǎn)懶谱净,明天看。今天 先搞懂概念