最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java對(duì)象不使用時(shí)賦值null的意義詳解

 更新時(shí)間:2020年03月11日 13:30:37   作者:我太難了008  
這篇文章主要介紹了java對(duì)象不再使用時(shí)賦值null的意義,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

先看代碼

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日志打印

運(yùn)行上面的代碼,載圖gc日志

現(xiàn)在我們修改上面的測(cè)試代碼,將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();
  }
}

再次運(yùn)行程序,查看gc日志

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

為啥會(huì)造成二者的區(qū)別呢?

這還得從jvm認(rèn)定垃圾的機(jī)制:可達(dá)性分析說(shuō)起。

說(shuō)起這個(gè)可達(dá)性,首先就得說(shuō)到根,而“本地變量表”恰恰就可以看成是根。

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

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

使用javap -v TestDemo1.class

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

然后,我們?cè)倏磒laceHolder =null這段代碼的"本地變量表"的情況,其實(shí)它與上面一樣,看不出啥差別。

但是如果我們?cè)趐laceHolder后面再聲明一個(gè)變量

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();
  }
}

可以看到name這個(gè)變量名將slot槽1號(hào)位置占用了,是否可以說(shuō)明placeHolder沒(méi)啥用了呢

而且這段代碼與placeHolder = null的gc日志完全一樣。那么應(yīng)該可以說(shuō)明,我們聲明的這個(gè)String name = "admin" 斷開了棧中placeHolder與堆中實(shí)例之間關(guān)系。

而placeHolder =null應(yīng)該也有這個(gè)功能。

總結(jié):代碼離開變量作用域時(shí),并不會(huì)自動(dòng)切斷其與堆的聯(lián)系。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 帶你快速搞定java數(shù)組

    帶你快速搞定java數(shù)組

    數(shù)組是相同類型數(shù)據(jù)的有序集合數(shù)組描述的是相同類型的若干個(gè)數(shù)據(jù),按照一定的先后次序排列組合而成。其中,每一個(gè)數(shù)據(jù)稱作一個(gè)數(shù)組元素,每個(gè)數(shù)組元素可以通過(guò)一個(gè)下標(biāo)來(lái)訪問(wèn)它們數(shù)組的聲明創(chuàng)建
    2021-07-07
  • java反射應(yīng)用詳細(xì)介紹

    java反射應(yīng)用詳細(xì)介紹

    本篇文章依舊采用小例子來(lái)說(shuō)明java反射應(yīng)用,因?yàn)槲沂冀K覺(jué)的,案例驅(qū)動(dòng)是最好的,需要的朋友可以參考下
    2012-11-11
  • 詳解java中的byte類型

    詳解java中的byte類型

    Java也提供了一個(gè)byte數(shù)據(jù)類型,并且是基本類型。java byte是做為最小的數(shù)字來(lái)處理的,因此它的值域被定義為-128~127,也就是signed byte。下面這篇文章主要給大家介紹了關(guān)于java中byte類型的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • Springboot項(xiàng)目消費(fèi)Kafka數(shù)據(jù)的方法

    Springboot項(xiàng)目消費(fèi)Kafka數(shù)據(jù)的方法

    本文詳細(xì)介紹了如何在Spring Boot項(xiàng)目中配置和實(shí)現(xiàn)Kafka消費(fèi)者和生產(chǎn)者,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-01-01
  • Spring中@Value讀取properties作為map或list的操作

    Spring中@Value讀取properties作為map或list的操作

    這篇文章主要介紹了Spring中@Value讀取properties作為map或list的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • mybatis通過(guò)if語(yǔ)句實(shí)現(xiàn)增刪改查操作

    mybatis通過(guò)if語(yǔ)句實(shí)現(xiàn)增刪改查操作

    這篇文章主要介紹了mybatis通過(guò)if語(yǔ)句實(shí)現(xiàn)增刪改查操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Java實(shí)現(xiàn)任意進(jìn)制轉(zhuǎn)換

    Java實(shí)現(xiàn)任意進(jìn)制轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)任意進(jìn)制轉(zhuǎn)換的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • springboot openfeign從JSON文件讀取數(shù)據(jù)問(wèn)題

    springboot openfeign從JSON文件讀取數(shù)據(jù)問(wèn)題

    今天主要說(shuō)一下在openfeign里讀取JSON文件的問(wèn)題,我們將測(cè)試所需要的數(shù)據(jù)存儲(chǔ)到文件里,在修改時(shí)關(guān)注點(diǎn)比較單純
    2018-06-06
  • SpringBoot+Ant Design Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出功能方式

    SpringBoot+Ant Design Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出功能方式

    這篇文章主要介紹了SpringBoot+Ant Design Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出功能方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Spring Boot集成sa-token的項(xiàng)目實(shí)踐

    Spring Boot集成sa-token的項(xiàng)目實(shí)踐

    本文主要介紹了Spring Boot集成sa-token的項(xiàng)目實(shí)踐,實(shí)現(xiàn)了基本的登錄和權(quán)限控制功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05

最新評(píng)論

那坡县| 许昌市| 甘德县| 天镇县| 大洼县| 巴楚县| 昌吉市| 秦安县| 徐州市| 孟村| 扶沟县| 桂阳县| 南平市| 长治县| 松滋市| 边坝县| 宿州市| 安义县| 遵义县| 泰宁县| 紫云| 盐边县| 宝兴县| 邓州市| 苏尼特右旗| 大渡口区| 镇江市| 昆山市| 新野县| 湖州市| 咸宁市| 韶关市| 高清| 鄯善县| 任丘市| 台中县| 夹江县| 都昌县| 沙河市| 赣榆县| 阳泉市|