国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

關(guān)于Java垃圾回收問題

瀏覽:148日期:2023-12-17 10:06:52

問題描述

循環(huán)中的變量在每次循環(huán)后都會被回收嗎

比如

for (int i=0;i<1000000;i++){ Date date=new Date(); }

這個(gè)date沒有被引用,這樣會被垃圾回收嗎? 如果創(chuàng)建對象被引用,結(jié)果又是怎樣的了?

問題解答

回答1:

java的GC有YGC和FGC。你這里沒有被引用的date對象一定會被回收,但不是在每次循環(huán)結(jié)束后。GC的時(shí)機(jī)和你的代碼執(zhí)行沒有必然聯(lián)系。相關(guān)知識,你可以baidu下java GC

回答2:

這個(gè)問題的答案在于,jvm的垃圾回收機(jī)制在什么情況下會進(jìn)行垃圾回收。局部變量的作用于是{},也就是說,date沒有被引用了,當(dāng)執(zhí)行垃圾回收動(dòng)作的時(shí)候,這里的date就會被回收。

回答3:

new一個(gè)對象,那么就是存放在堆中,而且剛創(chuàng)建的對象存放在eden區(qū)中,只有當(dāng)eden區(qū)滿了,才會觸發(fā)Monitor GC進(jìn)行回收。你可以在運(yùn)行參數(shù)中添加-XX:+PrintGCDetails觀察GC回收的情況。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 顺义区| 海阳市| 弋阳县| 禄丰县| 新乡市| 格尔木市| 克什克腾旗| 沙坪坝区| 明溪县| 屯门区| 连平县| 廉江市| 澄城县| 长顺县| 攀枝花市| 铜梁县| 南漳县| 阿坝县| 东乌珠穆沁旗| 莎车县| 平乡县| 泸水县| 同仁县| 砚山县| 恩施市| 青浦区| 陕西省| 安化县| 阜城县| 天峻县| 碌曲县| 荆门市| 鹿邑县| 巴楚县| 伊通| 称多县| 卓尼县| 灵台县| 鹤岗市| 五大连池市| 澄江县|