欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年05月18日 13:35:41   作者:潘佳琦  
這篇文章主要介紹了Java對(duì)象在JVM中的生命周期詳解,小編覺得挺不錯(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之前還存在著雙向引用,但是在程序中并沒有任何引用變量來(lái)引用這兩個(gè)對(duì)象,程序也就無(wú)法訪問(wèn)到這個(gè)兩個(gè)變量,最終還是被JVM的垃圾回收器當(dāng)作無(wú)用的對(duì)象所回收。

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

相關(guān)文章

  • SpringBoot?@GroupSequenceProvider注解實(shí)現(xiàn)bean多屬性聯(lián)合校驗(yàn)的示例代碼

    SpringBoot?@GroupSequenceProvider注解實(shí)現(xiàn)bean多屬性聯(lián)合校驗(yàn)的示例代碼

    這篇文章主要介紹了SpringBoot?@GroupSequenceProvider注解實(shí)現(xiàn)bean多屬性聯(lián)合校驗(yàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Java實(shí)現(xiàn)全排列的三種算法詳解

    Java實(shí)現(xiàn)全排列的三種算法詳解

    從n個(gè)不同元素中任取m(m≤n)個(gè)元素,按照一定的順序排列起來(lái),叫做從n個(gè)不同元素中取出m個(gè)元素的一個(gè)排列。當(dāng)m=n時(shí)所有的排列情況叫全排列。本文總結(jié)了Java實(shí)現(xiàn)全排列的三種算法,需要的可以參考下
    2022-06-06
  • java8 LocalDate LocalDateTime等時(shí)間類用法實(shí)例分析

    java8 LocalDate LocalDateTime等時(shí)間類用法實(shí)例分析

    這篇文章主要介紹了java8 LocalDate LocalDateTime等時(shí)間類用法,結(jié)合具體實(shí)例形式分析了LocalDate、LocalTime、LocalDateTime等日期時(shí)間相關(guān)類的功能與具體使用技巧,需要的朋友可以參考下
    2017-04-04
  • SpringBoot實(shí)現(xiàn)jsonp跨域通信的方法示例

    SpringBoot實(shí)現(xiàn)jsonp跨域通信的方法示例

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)jsonp跨域通信的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • java判斷遠(yuǎn)程服務(wù)器上的文件是否存在的方法

    java判斷遠(yuǎn)程服務(wù)器上的文件是否存在的方法

    java判斷遠(yuǎn)程服務(wù)器上的文件是否存在的方法,需要的朋友可以參考一下
    2013-03-03
  • 使用Mybatis-plus策略自動(dòng)更新數(shù)據(jù)庫(kù)時(shí)間失敗問(wèn)題解決

    使用Mybatis-plus策略自動(dòng)更新數(shù)據(jù)庫(kù)時(shí)間失敗問(wèn)題解決

    這篇文章主要介紹了使用Mybatis-plus策略自動(dòng)更新數(shù)據(jù)庫(kù)時(shí)間失敗問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Dubbo之降級(jí)Mock源碼分析

    Dubbo之降級(jí)Mock源碼分析

    這篇文章主要為大家介紹了Dubbo降級(jí)Mock源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Windows10安裝IDEA 2020.1.2的方法步驟

    Windows10安裝IDEA 2020.1.2的方法步驟

    這篇文章主要介紹了Windows10安裝IDEA 2020.1.2的方法步驟,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • RestTemplate未使用線程池問(wèn)題的解決方法

    RestTemplate未使用線程池問(wèn)題的解決方法

    今天給大家?guī)?lái)的是關(guān)于Springboot的相關(guān)知識(shí),文章圍繞著RestTemplate未使用線程池展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 基于Spring上下文工具類?ApplicationContextUtil

    基于Spring上下文工具類?ApplicationContextUtil

    這篇文章主要介紹了基于Spring上下文工具類?ApplicationContextUtil,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評(píng)論