<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      JVM結構--類加載

      0
      分享至

      類加載
      類加載子系統的作用



      ? 類加載器子系統負責從文件系統或者網絡中加載class文件,class文件在文件開頭有特定的文件標識(字節碼文件都以CA FE BA BE標識開頭)。
      ? ClassLoader只負責class文件的加載,至于它是否可以運行,則由Execution Engine決定。加載的類信息存放于一塊稱為 方法區 的內存空間。除了類的信息外,方法區中還會存放運行時常量池的信息,還可能包括字符串字面量和數字常量(這部分常量信息是class文件中常量池部分的內存映射)。
      類加載ClassLoader的角色



      class file存在于硬盤上,可以理解為設計師畫在紙上的模板,而最終這個模板在執行的時候是要加載到JVM當中來,根據這個模板實例化出n個一模一樣的實例。
      class file加載到JVM中被稱為DNA元數據模板,放在方法區中。
      在.class==》JVM==》最終稱為元數據模板,此過程就要有一個運輸工具(類加載器ClassLoader),扮演一個快遞員的角色。
      類加載的過程



      1.加載
      通過類名(地址)獲取此類的二進制字節流。
      將這個字節流所代表的靜態存儲結構轉換為方法區(元空間)的運行時結構。
      在內存中生成一個代表這個類的java.lang.Class對象,作為方法區這個類的各種數據的訪問入口。
      2.鏈接
      驗證:檢驗被加載的類是否有正確的內部結構,并和其他類協調一致。
      準備:準備階段負責為類的靜態屬性分配內存,并設置默認初始值。
      ? 不包含用final修飾的static實例變量,在編譯時進行初始化。
      ? 不會為實例變量初始化。
      解析:將類的二進制數據中的符號引用替換成直接引用(符號引用是用一組符號描述所引用的目標,直接引用是指向目標的指針)。
      3.初始化
      類在以下情況時會初始化:
      創建類的實例,也就是new一個對象。
      訪問某個類或接口的靜態變量,或者對該靜態變量賦值。
      調用類的靜態方法。
      反射。
      初始化一個類的子類。
      類的初始化順序:
      如果同時包含多個靜態變量和靜態代碼塊,則按照自上而下的順序依次執行。
      如果初始化一個類的時候,其父類尚未初始化,則優先初始化其父類。
      順序是:父類static --> 子類static --> 父類構造方法 --> 子類構造方法
      類加載器分類
      JVM支持兩種類型的類加載器,分別為 引導類加載器 和 自定義類加載器。
      ? 從概念上講,自定義類加載器一般指的時程序匯總由開發人員自定義的一類加載器,Java虛擬機將所有派生于抽象類ClassLoader的類加載器都劃分為自定義類加載器。
      常見的類加載器有3個:



      引導類加載器(啟動類加載器)
      使用C/C++語言實現,嵌套在JVM內部,用來加載java核心類庫。
      并不集成于java.lang.ClassLoader,沒有父加載器。
      負責加載擴展類加載器和應用類加載器,并為他們指定父類加載器。
      出于安全考慮,引用類加載器只加載包名為java、javax、sun開頭的類。
      擴展類加載器
      使用java語言實現。
      派生于ClassLoader類。
      上層類加載器為引用類加載器。
      從java.ext.dirs系統屬性所指定的目錄中加載類庫。或從JDK系統安裝目錄的jre/lib/ext子目錄(擴展目錄)下加載類庫,如果用戶創建的jar放在此目錄下,也會自動有狂戰類加載器加載。
      應用程序類加載器
      使用java語言實現。
      派生于ClassLoader類。
      上層類加載器為擴展類加載器。
      用來加載我們自己定義的類。
      該類加載器時程序中默認的類加載器。
      通過類名.class.getClassLoader(),ClassLoader.getSystemClassLoader()來獲得。
      ClassLoader是一個抽象類,其后所有的類加載器都繼承自ClassLoader(不包括啟動類加載器)。
      雙親委派機制
      ? Java虛擬機對class文件采用的時按需加載的方式,也就是說當需要該類時才會將它的class文件加載到內存中生成class對象。而且加載某個類的class文件時,Java虛擬機采用的時雙親委派機制,即把請求交由父類處理,它是一種任務委派模式。



      工作原理:
      如果一個類加載器收到了類加載請求,并不會先去加載,而是把這個請求委托給父類的加載器去執行。
      如果父類加載器還存在其父類加載器,則進一步向上委托,一次遞歸,請求最終將到達頂層的啟動類加載器。
      如果父類加載器可以完成類的加載任務,就成功返回,倘若父類加載器無法完成加載任務,子加載器才會嘗試自己去加載,這就是雙親委派機制。
      如果均加載失敗,就會拋出ClassNotFoundException異常。
      **問題:**創建一個名為java.lang的包和一個名為String的類,當new String()時,會加載核心庫類中的String對象,還是自己創建的String類對象呢?
      package java.lang; //此包為自己創建的java.lang
      public class String{
      public static void main(String[] args){
      System.out.println("hello");
      }
      }
      //這段代碼能否執行呢?(運行不了)
      雙親委派機制的優點:
      安全。可避免用戶自己編寫的類動態替換Java核心類,如:java.lang.String
      避免全限定命名的類重復加載(使用了findLoadClass()判斷當前類是否已加載)
      沙箱安全機制
      作用:防止惡意代碼污染java源代碼
      ? 例如上面我們定義了一個名為String的類,所在包名為java.lang,因為這個類本來是屬于jdk的,如果沒有沙箱安全機制的話,這個類將會污染到系統中的String,但是由于沙箱安全機制,所以就委托頂層的引導類加載器查找到這個類,如果沒有的話就委托給擴展類加載器,再沒有就委托到系統類加載器。但是由于String就是jdk的源代碼,所以在引導類加載器那里就加載到了,先找到先使用,所以就使用引導類加載器里面的String,后面的一概不能使用,這就保證了不被惡意代碼污染。
      面試題:
      在JVM中如何判斷兩個對象是屬于同一個類?
      答:1.類的全類名(地址)完全一致。 2.類的加載器必須相同。
      類的主動使用/被動使用
      JVM規定,每個類或者接口被首次主動使用時才對其進行初始化,有主動使用,自然就有被動使用。
      主動使用和被動使用的區別在于類是否會被初始化。
      主動使用
      通過new關鍵字使類初始化,這是很常用的初始化一個類的方式,肯定會使類加載并且初始化。
      訪問類的靜態變量,包括讀取和更新
      訪問類的靜態方法
      對某個類進行反射操作,會使類初始化
      初始化子類會使其父類初始化
      執行該類的main方法
      被動使用
      引用該類的 靜態常量 ,不會導致初始化,但是也會有意外,這里的常量是指已經指定字面量的常量,對于那些需要一些計算才能得出結果的常量就會引起類的初始化。
      例如:
      public final static int num=5;//不會使類初始化,被動使用
      public final static int random=new Random().nextInt();//會使類初始化,主動使用
      構造某個類的數組時不會導致該類的初始化
      Student[] student = new Student[10];
      ————————————————
      版權聲明:本文為CSDN博主「Gxbalun喬峰」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
      原文鏈接:https://blog.csdn.net/weixin_45636230/article/details/115490932

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      西安7名殘疾人輪椅進地鐵遭查近一小時,內急哀求仍要“查完證”

      西安7名殘疾人輪椅進地鐵遭查近一小時,內急哀求仍要“查完證”

      聽心堂
      2026-04-28 21:45:16
      今夜,集體暴跌!

      今夜,集體暴跌!

      中國基金報
      2026-04-29 00:16:33
      “突破文明底線!”以高層被曝默許訓練狗強奸巴勒斯坦人

      “突破文明底線!”以高層被曝默許訓練狗強奸巴勒斯坦人

      觀察者網
      2026-04-28 15:33:14
      為了西伯利亞的安全,外蒙必須獨立?難怪俄國一定要留下烏東四州

      為了西伯利亞的安全,外蒙必須獨立?難怪俄國一定要留下烏東四州

      歷史擺渡
      2026-04-26 19:55:03
      某境外組織大力資助“躺平網紅”,系統性開展“躺平洗腦”,國安部提醒

      某境外組織大力資助“躺平網紅”,系統性開展“躺平洗腦”,國安部提醒

      界面新聞
      2026-04-28 08:10:01
      有人問,若是國民黨當年贏了,老蔣統治中國,那中國的未來會如何

      有人問,若是國民黨當年贏了,老蔣統治中國,那中國的未來會如何

      浩渺青史
      2026-04-27 17:06:59
      斯諾克世錦賽1/4決賽前二階段:趙心童8-8平墨菲,2桿破百5桿50+

      斯諾克世錦賽1/4決賽前二階段:趙心童8-8平墨菲,2桿破百5桿50+

      側身凌空斬
      2026-04-29 05:19:11
      NBA敲定反擺爛方案!命名3-2-1樂透規則 將于2027年選秀生效

      NBA敲定反擺爛方案!命名3-2-1樂透規則 將于2027年選秀生效

      羅說NBA
      2026-04-29 06:06:03
      天價球員!8個選秀權+文班亞馬!瘋了吧你!

      天價球員!8個選秀權+文班亞馬!瘋了吧你!

      柚子說球
      2026-04-28 14:08:37
      2次落后2次追平!吳宜澤單桿制勝,瓦菲1球不進,羅伯遜2-1逆轉!

      2次落后2次追平!吳宜澤單桿制勝,瓦菲1球不進,羅伯遜2-1逆轉!

      劉姚堯的文字城堡
      2026-04-28 23:04:23
      54只警犬被公開拍賣,得知原因后……大家笑噴了哈哈哈!

      54只警犬被公開拍賣,得知原因后……大家笑噴了哈哈哈!

      神奇故事
      2026-04-28 22:08:37
      3個前任都是大人物,為何阿sa卻嫁給了健身教練?答案俗套又露骨

      3個前任都是大人物,為何阿sa卻嫁給了健身教練?答案俗套又露骨

      攬星河的筆記
      2026-04-28 22:48:59
      虎狼之詞!若孩子抗壓能力差,被淘汰也是人生,一家長發帖引爭議

      虎狼之詞!若孩子抗壓能力差,被淘汰也是人生,一家長發帖引爭議

      火山詩話
      2026-04-29 05:45:16
      美國開始陷入絕望,來時還好好的,現在卻回不去了

      美國開始陷入絕望,來時還好好的,現在卻回不去了

      揭秘歷史的真相
      2026-04-28 21:47:08
      倫敦世乒賽又“作妖”!逼出國乒“最強大腦”!

      倫敦世乒賽又“作妖”!逼出國乒“最強大腦”!

      最愛乒乓球
      2026-04-29 00:07:34
      馬德里公開賽大冷門!薩巴倫卡遭逆轉出局,送對手首進1000賽四強

      馬德里公開賽大冷門!薩巴倫卡遭逆轉出局,送對手首進1000賽四強

      全景體育V
      2026-04-29 06:03:41
      為什么說陽痿、跑步、心梗,成了“斬殺”中年男性的“三件套”?

      為什么說陽痿、跑步、心梗,成了“斬殺”中年男性的“三件套”?

      醫藥養生保健報社
      2026-04-28 17:59:19
      網紅白冰偷稅被追繳1891萬,全網賬號已禁言,妻子江夢瑤曝其現狀

      網紅白冰偷稅被追繳1891萬,全網賬號已禁言,妻子江夢瑤曝其現狀

      阿纂看事
      2026-04-28 18:04:57
      世錦賽戰報:競逐四強,6-7/3-5,世界第4第5都落后了!吳宜澤4-4

      世錦賽戰報:競逐四強,6-7/3-5,世界第4第5都落后了!吳宜澤4-4

      求球不落諦
      2026-04-29 04:33:20
      周樂偉涉嫌嚴重違紀違法,主動投案!曾任格力集團董事長

      周樂偉涉嫌嚴重違紀違法,主動投案!曾任格力集團董事長

      每日經濟新聞
      2026-04-29 00:11:10
      2026-04-29 09:27:02
      軟測試驗田
      軟測試驗田
      軟件測試領域最新最前沿資訊
      117文章數 128關注度
      往期回顧 全部

      科技要聞

      夭折的造富神話,逼著中國AI回去賺"慢錢"

      頭條要聞

      阿聯酋突然退出歐佩克 被視為是"特朗普的一次勝利"

      頭條要聞

      阿聯酋突然退出歐佩克 被視為是"特朗普的一次勝利"

      體育要聞

      魔術黑八活塞,一步之遙?!

      娛樂要聞

      蔡卓妍官宣結婚,老公比她小10歲

      財經要聞

      多地藥店違規串換商品套刷醫保揭秘

      汽車要聞

      拒絕瘋狂套娃!現代艾尼氪金星長在未來審美點上

      態度原創

      教育
      時尚
      數碼
      親子
      公開課

      教育要聞

      選調考試到底好不好

      劉浩存:明媚中綻放

      數碼要聞

      夏天開空調前必看!做好這幾步 制冷好還耐用

      親子要聞

      育兒壓力讓你感到疲憊嗎?看看美國外科醫生的建議

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 国产精品天干天干综合网| 国产午夜视频在线观看| 最近中文字幕日韩有码| 少妇熟女久久综合网色欲| 亚洲精品国产情侣AV在线| 秋霞二区| 人妻夜夜爽天天爽一区| 国产欧美精品一区二区三区四区 | 亚洲欧洲无码线中字幕| 国产成人?亚洲?日韩| 国产精品激情| 国产在线拍偷自揄观看视频网站| 中文亚洲字幕| 合阳县| 一区二区三区不卡国产| 四房播播成人网| 亚洲中文字幕久在线| 免费人成视频19674不收费 | 丁香婷婷色综合激情五月| 亚洲?欧美?中文?字幕| 国产美女高潮流白浆视频| 熟妇人妻中文字幕| 毛片内射久久久一区| 九九综合色| 亚洲国产精久久久久久久春色 | 欧美三级a做爰在线观看| 成人亚洲综合av天堂| 午夜欧美日韩在线视频播放| 69精品人人人人人| 使劲快高潮了国语对白在线| 神马视频| 欧美性色黄大片| 精品无码国产污污污免费| 一级AV韩国| 无码人妻丰满熟妇区五十路在线| 亚洲成人精品无码系列| 免费看一区二区三区四区| av一区二区三区| 凤山市| 亚洲精品久久久av无码专区| 人人爽人人爽人人爽|