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

Java中的類加載與類卸載方式

 更新時間:2023年12月27日 16:13:39   作者:m0_38063172  
這篇文章主要介紹了Java中的類加載與類卸載方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Java中的類加載與類卸載

類加載

Java中的代碼都寫在類里面,源代碼(.java文件)經(jīng)過編譯后會變成字節(jié)碼(.class文件),當Java應用程序運行時,JVM會加載要用到的類。

負責類加載的是java.lang.ClassLoader的對象,ClassLoader的對象會根據(jù)類的binary name(不知道怎么翻譯,二進制名?)來讀取類的字節(jié)碼,然后把這些字節(jié)碼加載到JVM的方法區(qū)里,同時會在heap里面創(chuàng)建一個Class對象,這個Class對象是類的元數(shù)據(jù)和它的對象通信的接口。

類在heap中的Class對象和加載它的ClassLoader對象之間有強引用。

類卸載

不像類加載,Java中沒有提供顯式進行類卸載的API,但是如果加載類的ClassLoader對象被垃圾回收器回收的話,這個類就會被卸載。

所以我們可以自己實現(xiàn)ClassLoader,自己加載類,然后對ClassLoader對象的引用賦值為null,等ClassLoader對象剩下的引用數(shù)量為0時會被回收,這樣就達到卸載類的目的了。

什么是類加載?什么時候卸載?

1.先看一下類的生命周期

加載 – 連接 – 初始化 – 使用 – 卸載

2.加載

類加載,指的是將類的.class文件中的二進制數(shù)據(jù)讀入到內存中,把它放進運行時數(shù)據(jù)區(qū)的方法區(qū)內(Perm區(qū))。

然后在堆區(qū)創(chuàng)建一個java.lang.Class對象,封裝這個類在自身的方法區(qū)內的數(shù)據(jù)結構。

類的加載的最終產(chǎn)品是位于堆區(qū)中的Class對象,Class對象封裝了類在方法區(qū)(Perm區(qū))內的數(shù)據(jù)結構,并且向Java程序員提供了訪問方法區(qū)內的數(shù)據(jù)結構的接口。

注意,這是仍舊沒有生成針對該類的對象。后續(xù)對類的實例化,會使用堆內存中的Class對象生成具體的實例對象。

3.卸載

如果有下面的情況,類就會被卸載:

1、該類所有的實例都已經(jīng)被回收,也就是java堆中不存在該類的任何實例。

2、加載該類的ClassLoader已經(jīng)被回收。

3、該類對應的java.lang.Class對象沒有任何地方被引用,無法在任何地方通過反射訪問該類的方法。

如果以上三個條件全部滿足,jvm就會在方法區(qū)垃圾回收的時候對類進行卸載,類的卸載過程其實就是在方法區(qū)中清空類信息,java類的整個生命周期就結束了。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java模擬實現(xiàn)斗地主發(fā)牌

    Java模擬實現(xiàn)斗地主發(fā)牌

    這篇文章主要為大家詳細介紹了Java實現(xiàn)模擬斗地主發(fā)牌,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 最新Spring Security實戰(zhàn)教程之Spring Security安全框架指南

    最新Spring Security實戰(zhàn)教程之Spring Security安全框架指南

    SpringSecurity是Spring生態(tài)系統(tǒng)中的核心組件,提供認證、授權和防護機制,以保護應用免受各種安全威脅,它支持多種認證方式,并通過攔截器和過濾器鏈進行安全檢查,本文通過搭建SpringBoot+SpringSecurity項目,幫助如何快速上手并應用SpringSecurity,感興趣的朋友一起看看吧
    2025-03-03
  • spring、mybatis 配置方式詳解(常用兩種方式)

    spring、mybatis 配置方式詳解(常用兩種方式)

    這篇文章給大家總結了常用的兩種spring、mybatis 配置方式,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2017-12-12
  • idea如何修改文件的file is read-only問題

    idea如何修改文件的file is read-only問題

    這篇文章主要介紹了idea如何修改文件的file is read-only問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java Quartz定時器任務與Spring task定時的幾種實現(xiàn)方法

    java Quartz定時器任務與Spring task定時的幾種實現(xiàn)方法

    本篇文章主要介紹了java Quartz定時器任務與Spring task定時的幾種實現(xiàn)方法的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • IntelliJ IDEA中進行背景設置過程

    IntelliJ IDEA中進行背景設置過程

    本文介紹了IntelliJ IDEA中主題切換、代碼編輯區(qū)護眼色設置、背景圖片設置的方法及注意事項,推薦使用深色主題+豆沙綠編輯區(qū)組合,兼顧美觀與護眼,設置適用于Windows/macOS/Linux平臺
    2026-05-05
  • 解決JDK異常處理No appropriate protocol問題

    解決JDK異常處理No appropriate protocol問題

    這篇文章主要介紹了解決JDK異常處理No appropriate protocol問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • String s = new String(''a '') 到底產(chǎn)生幾個對象

    String s = new String(''a '') 到底產(chǎn)生幾個對象

    這篇文章主要介紹了String s = new String(" a ") 到底產(chǎn)生幾個對象,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下
    2017-04-04
  • 基于Spring實現(xiàn)文件上傳功能

    基于Spring實現(xiàn)文件上傳功能

    這篇文章主要為大家詳細介紹了Spring實現(xiàn)文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評論

海口市| 大悟县| 渑池县| 灵石县| 来安县| 措勤县| 刚察县| 正镶白旗| 隆回县| 洱源县| 耿马| 麟游县| 湘潭市| 大化| 乐昌市| 灌南县| 黄平县| 南陵县| 正安县| 清河县| 龙海市| 海晏县| 高碑店市| 江油市| 长宁县| 芷江| 射阳县| 正镶白旗| 双桥区| 三原县| 灵川县| 台南市| 元朗区| 石柱| 昌都县| 喀喇沁旗| 安国市| 大邑县| 鲁山县| 任丘市| 甘洛县|