Java四种引用
強引用:沒有使用時調(diào)用System.gc()會回收
eg:M m = new M(); m=null;System.gc();
軟引用:內(nèi)存不夠時就回收
作用:一般使用在緩存時,比如把一些圖片存儲,內(nèi)存不夠時就自動回收
弱引用:
垃圾回收機制發(fā)現(xiàn)就回收
作用:一次性使用
虛引用:引用了get它的值也是null
作用:管理堆外內(nèi)存
os從網(wǎng)卡讀數(shù)據(jù),jvm從os讀,之后jvm如果要從網(wǎng)絡上寫出數(shù)據(jù)
jsm先給os,再給網(wǎng)卡
jvm->os這個復制過程可以省略,NIO提供了堆外內(nèi)存管理。
jvm直接在os操作,不用在jvm這處理數(shù)據(jù),這就是zeroCopy,這個過程需要Java的一個對象表示這塊內(nèi)存,
這塊內(nèi)存叫DirectBvteBuffer。
但是堆外內(nèi)存要刪的時候,JVM管不到,所以加個虛引用
DirectBvteBuffer沒有了,Queue監(jiān)測,之后就把堆外內(nèi)存回收。
?
總結(jié)
- 上一篇: 【剑指offer】面试题46. 把数字翻
- 下一篇: Leetcode--76. 最小覆盖子串