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

Java對(duì)象在JVM中的生命周期詳解

 更新時(shí)間:2019年05月18日 13:35:41   作者:潘佳琦  
這篇文章主要介紹了Java對(duì)象在JVM中的生命周期詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

概念

在Java中,對(duì)象的生命周期包括以下幾個(gè)階段:

  • 創(chuàng)建階段(Created)
  • 應(yīng)用階段(In Use)
  • 不可見階段(Invisible)
  • 不可達(dá)階段(Unreachable)
  • 收集階段(Collected)
  • 終結(jié)階段(Finalized)
  • 對(duì)象空間重分配階段(De-allocated)

Java對(duì)象在JVM中的生命周期

當(dāng)你通過(guò)new語(yǔ)句創(chuàng)建一個(gè)java對(duì)象時(shí),JVM就會(huì)為這個(gè)對(duì)象分配一塊內(nèi)存空間,只要這個(gè)對(duì)象被引用變量引用了,那么這個(gè)對(duì)象就會(huì)一直駐留在內(nèi)存中,否則,它就會(huì)結(jié)束生命周期,JVM會(huì)在合適的時(shí)候回收它所占用的內(nèi)存。

偽代碼:

class Teacher:
  //屬性
  String  name;
  Set<Student> students;
 
  //有參構(gòu)造函數(shù)
  Teacher(String tname, Set<Student> students );
 
  //setter,getter省略
 
class Student:
  //屬性
  String name;
  Teacher teachrer;
 
  //有參構(gòu)造函數(shù)
  Student(String sname,Teacher teacher);
  
  //setter,getter省略
main:
 Teacher t = new Teacher("張三",new hashSet());
 
 Student s = new Studnet("李四",null);
 
 s.getTeacher(t);
 t.getStudnet().add(s);


 s = null;
 t = null;

創(chuàng)建了一個(gè)Teacher對(duì)象和一個(gè)個(gè)Student對(duì)象,并且定義了2個(gè)引用變量t,s,分別引用了Teacher對(duì)象,Student對(duì)象

建立了Teacher對(duì)象和Student對(duì)象的雙向關(guān)聯(lián)關(guān)系,表示Student對(duì)象的teacher屬性引用了Teacher對(duì)象,Teacher對(duì)象的students集合存放了Student對(duì)象的引用。

把s變量置為了null,s變量不再引用Student對(duì)象了,但是Teacher對(duì)象的students仍然存放著Student對(duì)象的引用,那么Student對(duì)象就會(huì)結(jié)束生命周期;把t變量置為null后,Teacher不再被任何引用變量所引用,自然Teacher對(duì)象的引用也不存在了,也就結(jié)束了周期。

雖然最后Teacher和Student之前還存在著雙向引用,但是在程序中并沒(méi)有任何引用變量來(lái)引用這兩個(gè)對(duì)象,程序也就無(wú)法訪問(wèn)到這個(gè)兩個(gè)變量,最終還是被JVM的垃圾回收器當(dāng)作無(wú)用的對(duì)象所回收。

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

相關(guān)文章

  • 手寫Java?LockSupport的示例代碼

    手寫Java?LockSupport的示例代碼

    LockSupport給我們提供了一個(gè)非常強(qiáng)大的功能,它是線程阻塞最基本的元語(yǔ),他可以將一個(gè)線程阻塞也可以將一個(gè)線程喚醒,因此經(jīng)常在并發(fā)的場(chǎng)景下進(jìn)行使用。本文將用60行代碼實(shí)現(xiàn)手寫LockSupport,需要的可以參考一下
    2022-08-08
  • SpringMVC MethodArgumentResolver的作用與實(shí)現(xiàn)

    SpringMVC MethodArgumentResolver的作用與實(shí)現(xiàn)

    這篇文章主要介紹了SpringMVC MethodArgumentResolver的作用與實(shí)現(xiàn),MethodArgumentResolver采用一種策略模式,在Handler的方法被調(diào)用前,Spring MVC會(huì)自動(dòng)將HTTP請(qǐng)求中的參數(shù)轉(zhuǎn)換成方法參數(shù)
    2023-04-04
  • SpringBoot使用Captcha生成驗(yàn)證碼

    SpringBoot使用Captcha生成驗(yàn)證碼

    這篇文章主要介紹了SpringBoot如何使用Captcha生成驗(yàn)證碼,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot,感興趣的朋友可以了解下
    2021-04-04
  • java判斷String類型是否能轉(zhuǎn)換為int的方法

    java判斷String類型是否能轉(zhuǎn)換為int的方法

    今天小編就為大家分享一篇java判斷String類型是否能轉(zhuǎn)換為int的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 解決JDK異常處理No appropriate protocol問(wèn)題

    解決JDK異常處理No appropriate protocol問(wèn)題

    這篇文章主要介紹了解決JDK異常處理No appropriate protocol問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 使用SpringBoot設(shè)置虛擬路徑映射絕對(duì)路徑

    使用SpringBoot設(shè)置虛擬路徑映射絕對(duì)路徑

    這篇文章主要介紹了使用SpringBoot設(shè)置虛擬路徑映射絕對(duì)路徑的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • logback-spring.xml的內(nèi)容格式詳解

    logback-spring.xml的內(nèi)容格式詳解

    這篇文章主要介紹了logback-spring.xml的內(nèi)容格式詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的的朋友參考下吧
    2023-11-11
  • IDEA使用Tomcat運(yùn)行web項(xiàng)目教程分享

    IDEA使用Tomcat運(yùn)行web項(xiàng)目教程分享

    在非Spring Boot項(xiàng)目中運(yùn)行Nacos示例,需要手動(dòng)配置Tomcat容器,本文介紹了如何在IDEA中配置Tomcat,并詳細(xì)解決了配置過(guò)程中可能遇到的異常情況,步驟包括修改IDEA項(xiàng)目結(jié)構(gòu)、添加Web模塊、配置Artifacts和Tomcat Server
    2024-10-10
  • Springboot詳解線程池與多線程及阻塞隊(duì)列的應(yīng)用詳解

    Springboot詳解線程池與多線程及阻塞隊(duì)列的應(yīng)用詳解

    本例應(yīng)用線程池、多線程、阻塞隊(duì)列處理一個(gè)流程任務(wù)。本例處理一個(gè)訂單流程,主要包括生成訂單、訂單處理、訂單入庫(kù),下面我們一起看看
    2022-06-06
  • springboot?接收LocalDateTime方式

    springboot?接收LocalDateTime方式

    這篇文章主要介紹了springboot?接收LocalDateTime方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評(píng)論

郑州市| 沁阳市| 翁牛特旗| 印江| 田东县| 宝山区| 武义县| 重庆市| 包头市| 永城市| 乐陵市| 甘南县| 金湖县| 兴海县| 米易县| 福建省| 夏邑县| 龙游县| 西乌珠穆沁旗| 孝昌县| 宁河县| 桂平市| 鄂托克旗| 郓城县| 靖远县| 青浦区| 景泰县| 漳州市| 江永县| 黄龙县| 沂源县| 奉节县| 安西县| 垣曲县| 响水县| 天长市| 高陵县| 尖扎县| 嘉峪关市| 大连市| 宁强县|