不用登錄的小游戲網(wǎng)站/推廣平臺(tái)怎么找客源
目錄
- 一、System.gc()的理解
- 二、內(nèi)存溢出和內(nèi)存泄漏
- 2、內(nèi)存泄漏
- 三、Stop the World
- 1、什么是 stop the word ?
- 四、垃圾回收的并行和并發(fā)
- 1、并發(fā)和并發(fā)
- 2、垃圾回收的并行和并發(fā)
- 五、安全點(diǎn)與安全區(qū)域
- 1、什么是安全點(diǎn)?
- 2、安全區(qū)域
- 六、強(qiáng)引用(不可回收)
- 七、軟引用(Soft Reference 內(nèi)存不足即回收)
- 八、弱引用(Weak Reference 發(fā)現(xiàn)即回收)
- 九、虛引用(Phantom Reference 對(duì)象回收跟蹤)
- 十、終結(jié)器引用(Final Reference)
一、System.gc()的理解
顯示觸發(fā)FullGC
二、內(nèi)存溢出和內(nèi)存泄漏
Javadoc中對(duì)于OutOfMemoryError的解釋是,沒(méi)有空閑內(nèi)存,并且垃圾收集器也無(wú)法提供更多的內(nèi)存
2、內(nèi)存泄漏
只有對(duì)象不再被應(yīng)用程序使用到了,但是GC又不能回收他們的情況,才叫內(nèi)存泄漏
三、Stop the World
1、什么是 stop the word ?
四、垃圾回收的并行和并發(fā)
1、并發(fā)和并發(fā)
2、垃圾回收的并行和并發(fā)
五、安全點(diǎn)與安全區(qū)域
1、什么是安全點(diǎn)?
程序執(zhí)行的時(shí)并非在所有地方都能停頓下來(lái)開(kāi)始GC,只有在特定的位置才能停頓下來(lái)開(kāi)始GC,這些位置稱為安全點(diǎn)(SafePoint)
SafePoint 的選擇很重要
2、安全區(qū)域
安全區(qū)域是指在一段代碼片段中,對(duì)象的引用關(guān)系不會(huì)發(fā)生變化,在這個(gè)區(qū)域中的任何位置開(kāi)始GC都是安全的
六、強(qiáng)引用(不可回收)
七、軟引用(Soft Reference 內(nèi)存不足即回收)
軟引用是用來(lái)描述一些還有用,但非必須的對(duì)象。
//創(chuàng)建對(duì)象,建立軟引用
// SoftReference<User> userSoftRef = new SoftReference<User>(new User(1, "songhk"));//上面的一行代碼,等價(jià)于如下的三行代碼User u1 = new User(1,"songhk");SoftReference<User> userSoftRef = new SoftReference<User>(u1);u1 = null;//取消強(qiáng)引用
八、弱引用(Weak Reference 發(fā)現(xiàn)即回收)
弱引用也是用來(lái)描述那些非必需的對(duì)象,只被弱引用關(guān)聯(lián)的對(duì)象只能生存到下一次垃圾收集發(fā)生為止
九、虛引用(Phantom Reference 對(duì)象回收跟蹤)
也稱為"幽靈引用"或者"幻影引用",是所有引用類型中最弱的一個(gè)
一個(gè)對(duì)象是否有虛引用的存在,完全不會(huì)決定對(duì)象的生命周期。如果一個(gè)對(duì)象僅持有虛引用,那么它和沒(méi)有引用幾乎是一樣的,隨時(shí)可能被垃圾回收器回收。
為一個(gè)對(duì)象設(shè)置虛引用的唯一目的在于跟蹤垃圾回收過(guò)程,比如:能在這個(gè)對(duì)象被收集器回收時(shí)收到一個(gè)系統(tǒng)通知