java 內存

堆區:存儲的全是對象,(class可執行文件)

只有一個堆區, 而且被所有線程共享,堆中不存放基本類型和對象引用,只存放對象本身和數組本身

棧區:每個線程只包含一個棧區,棧中只存儲基礎數據本身和自定義對象引用

每個棧數據是私有的

棧分爲三個部分 基本類型變量區 執行環境上下文 操作指令區

方法區:被所有線程共享,方法區包含所有的class

方法區中包含都是在整個程序中唯一的元素,如class,static變量

 

內存溢出 out of memory,是指程序在申請內存時,沒有足夠的內存空間供其使用,出現out of memory;比如申請了一個integer,但給它存了long才能存下的數,那就是內存溢出。

內存泄露 memory leak,是指程序在申請內存後,無法釋放已申請的內存空間,一次內存泄露危害可以忽略,但內存泄露堆積後果很嚴重,無論多少內存,遲早會被佔光(長生命週期對象持有短生命週期對象的引用(static))靜態變量非靜態內部類

靜態內部類不會持有外部類引用

 

 

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