国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Java對象不使用時賦值null的意義詳解

瀏覽:3日期:2022-09-04 15:56:34

先看代碼

public class TestDemo1 { public static void main(String[] args) { if (true) { byte[] placeHolder = new byte[64 * 1024 * 1024]; System.out.println(placeHolder.length / 1024); } System.gc(); }}

idea配置gc日志打印

Java對象不使用時賦值null的意義詳解

運行上面的代碼,載圖gc日志

Java對象不使用時賦值null的意義詳解

現在我們修改上面的測試代碼,將placeHolder置為null

public class TestDemo1 { public static void main(String[] args) { if (true) { byte[] placeHolder = new byte[64 * 1024 * 1024]; System.out.println(placeHolder.length / 1024); placeHolder = null; } System.gc(); }}

再次運行程序,查看gc日志

Java對象不使用時賦值null的意義詳解

由以上載圖日志可以明顯看到二者差別,所以不用對象置為null還是很有意義的。

為啥會造成二者的區別呢?

這還得從jvm認定垃圾的機制:可達性分析說起。

說起這個可達性,首先就得說到根,而“本地變量表”恰恰就可以看成是根。

上面兩段代碼本地變量表是不一樣的。

先看第一段代碼,就是placeHolder沒有置null的“本地變量表 ”

使用javap -v TestDemo1.class

Java對象不使用時賦值null的意義詳解

可以看到placeHolder還在本地變量表中,而且它占用slot槽1號位置, 所以jvm認為它還是活著的。

然后,我們再看placeHolder =null這段代碼的'本地變量表'的情況,其實它與上面一樣,看不出啥差別。

但是如果我們在placeHolder后面再聲明一個變量

public class TestDemo1 { public static void main(String[] args) { if (true) { byte[] placeHolder = new byte[64 * 1024 * 1024]; System.out.println(placeHolder.length / 1024); } String name = 'admin'; System.gc(); }}

Java對象不使用時賦值null的意義詳解

可以看到name這個變量名將slot槽1號位置占用了,是否可以說明placeHolder沒啥用了呢

而且這段代碼與placeHolder = null的gc日志完全一樣。那么應該可以說明,我們聲明的這個String name = 'admin' 斷開了棧中placeHolder與堆中實例之間關系。

而placeHolder =null應該也有這個功能。

總結:代碼離開變量作用域時,并不會自動切斷其與堆的聯系。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 女人张开腿给人桶免费视频 | 2017天天爽夜夜爽精品视频 | 波多野结衣一区二区三区在线观看 | a级毛片毛片免费很很综合 a级毛片免费 | 成年人国产视频 | 日本不卡一二三区 | 久久亚洲私人国产精品va | 亚洲天堂视频一区 | 亚洲精品综合在线 | 黄色一级毛片网站 | 日本b站一卡二卡乱码入口 日本s色大片在线观看 | 美日韩一区二区三区 | 久久久久久一品道精品免费看 | 欧美国产精品一区二区免费 | 国产成人亚洲日本精品 | 亚洲午夜一区二区三区 | 亚洲第一视频网站 | 久久久久久青草大香综合精品 | 亚洲偷 | 一区二区网站 | 欧美日韩a级片 | 女人张开腿让男人 | 国产精品一区在线观看 | 精品久久在线 | 成人午夜私人影院入口 | 久久精品亚洲综合一品 | 最新国产精品自拍 | 欧美高清一级啪啪毛片 | 中文字幕乱码中文乱码51精品 | 天天舔夜夜操 | 亚洲网址在线 | 欧美一区a | 日本一区二区高清免费不卡 | 一级做性色a爱片久久片 | 国产精品综合久成人 | 成人a免费视频播放 | 欧美国产日韩在线 | 国内精品久久久久影院亚洲 | 美女久草| 波多野结衣中文一区二区免费 | 99精品久久精品一区二区 |