<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.

      相關推薦
      熱點推薦
      公交車為啥沒人坐了?背后真相太現實

      公交車為啥沒人坐了?背后真相太現實

      李砍柴
      2026-04-27 19:41:42
      改口不到48小時,特朗普又翻臉了!軍方收到擊沉令,伊朗麻煩了

      改口不到48小時,特朗普又翻臉了!軍方收到擊沉令,伊朗麻煩了

      蘭亭墨未干
      2026-04-28 18:40:50
      全網爆火!佛山12歲“小孩姐”廣交會全英文壓價,從容氣場看呆網友!這是“霸總幼年體”

      全網爆火!佛山12歲“小孩姐”廣交會全英文壓價,從容氣場看呆網友!這是“霸總幼年體”

      佛山電視臺小強熱線
      2026-04-28 19:18:19
      這個燈是什么燈?

      這個燈是什么燈?

      大象新聞
      2026-04-28 10:28:06
      撒貝寧、張帥獲全國五一勞動獎章

      撒貝寧、張帥獲全國五一勞動獎章

      觀察者網
      2026-04-28 14:16:14
      中國堅守承諾拒購H200芯片,美國態度急轉并尋求對話

      中國堅守承諾拒購H200芯片,美國態度急轉并尋求對話

      米老鼠的世界
      2026-04-28 00:07:20
      曝南京“小潘記鴨血粉絲”老板去世,59歲年掙千萬,疑高血壓導致

      曝南京“小潘記鴨血粉絲”老板去世,59歲年掙千萬,疑高血壓導致

      裕豐娛間說
      2026-04-28 10:15:07
      記者:至少三家俱樂部反對曼城的賽程調整申請,不包括切爾西

      記者:至少三家俱樂部反對曼城的賽程調整申請,不包括切爾西

      懂球帝
      2026-04-28 19:57:12
      《金瓶梅》揭露的情感真相:男人想讓女人死心塌地,秘訣就三個字

      《金瓶梅》揭露的情感真相:男人想讓女人死心塌地,秘訣就三個字

      卡西莫多的故事
      2026-04-19 12:18:40
      東風導彈泄密案!間諜郭萬鈞一家三口,全部被處以死刑

      東風導彈泄密案!間諜郭萬鈞一家三口,全部被處以死刑

      番外行
      2026-03-31 08:28:28
      軟蛋!8分+6犯規,一進季后賽就歇菜,2億頂薪啊,徹底涼涼了

      軟蛋!8分+6犯規,一進季后賽就歇菜,2億頂薪啊,徹底涼涼了

      球童無忌
      2026-04-27 22:05:49
      大量酒店智能終端流入閑魚!7寸大屏+安卓8.1,二手50塊

      大量酒店智能終端流入閑魚!7寸大屏+安卓8.1,二手50塊

      閑搞機
      2026-04-27 11:05:29
      公認歷史最水名帥!卻執教27年,賺了1.2億,剛被裁,就找到工作

      公認歷史最水名帥!卻執教27年,賺了1.2億,剛被裁,就找到工作

      寶哥精彩賽事
      2026-04-28 14:34:41
      警惕!境外組織做局躺平,資助網紅洗腦青年,國安部緊急提醒

      警惕!境外組織做局躺平,資助網紅洗腦青年,國安部緊急提醒

      青梅侃史啊
      2026-04-28 16:52:45
      掘金125-113擊敗森林狼!約基奇創80年NBA紀錄,不愧是3屆MVP

      掘金125-113擊敗森林狼!約基奇創80年NBA紀錄,不愧是3屆MVP

      阿晞體育
      2026-04-28 19:33:26
      倫敦世乒賽今天開打!4月28日賽程公布:神秘之師登場,雨果首秀

      倫敦世乒賽今天開打!4月28日賽程公布:神秘之師登場,雨果首秀

      全言作品
      2026-04-28 07:00:11
      1971年,黃永勝在獄中寫信給毛主席,主席看后給監獄批示了九個字

      1971年,黃永勝在獄中寫信給毛主席,主席看后給監獄批示了九個字

      搜史君
      2026-04-28 17:15:09
      普京稱西方正將領導地位讓位于全球南方國家

      普京稱西方正將領導地位讓位于全球南方國家

      澎湃新聞
      2026-04-28 20:22:07
      官宣:71名球員提前參加今年選秀大會 布澤爾&迪班薩在列

      官宣:71名球員提前參加今年選秀大會 布澤爾&迪班薩在列

      北青網-北京青年報
      2026-04-28 19:26:32
      好萊塢風流往事:沃倫體力太好,一天數次求歡,讓麥當娜欲罷不能

      好萊塢風流往事:沃倫體力太好,一天數次求歡,讓麥當娜欲罷不能

      錢小刀娛樂
      2026-04-15 15:40:52
      2026-04-28 20:51:00
      軟測試驗田
      軟測試驗田
      軟件測試領域最新最前沿資訊
      117文章數 128關注度
      往期回顧 全部

      科技要聞

      10億周活目標落空!傳OpenAI爆發內部分歧

      頭條要聞

      80多萬買的新房未交房成工人宿舍 業主看到排泄物崩潰

      頭條要聞

      80多萬買的新房未交房成工人宿舍 業主看到排泄物崩潰

      體育要聞

      季后賽最新局勢:雷霆4-0晉級首隊 4隊3-1

      娛樂要聞

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

      財經要聞

      政治局會議:加強算力網等規劃建設

      汽車要聞

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

      態度原創

      房產
      教育
      數碼
      健康
      時尚

      房產要聞

      紅利爆發!海南,沖到全國人口增量第4省!

      教育要聞

      不要培養“廉價”的孩子

      數碼要聞

      充電器統一再進一步!歐盟所有筆記本必須支持USB-C充電:今天起生效

      干細胞治療燒燙傷三大優勢!

      她們的人生牛仔褲,鏈接都在這了

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 97在线视频人妻无码| 蜜桃av在线| 香蕉久人久人青草青草| 亚洲精品一区二区三区蜜臀| 高清无码18禁| 国产国语老龄妇女a片| 欧美亚洲另类自拍偷在线拍| 玩弄放荡人妇系列av在线网站| 无遮挡又爽又刺激的视频| 汪清县| 国产一区二区三区内射高清 | 久久www免费人成一看片| 亚洲精品国产精品国自产| 欧美日韩xxx| 捆绑白丝粉色jk震动捧喷白浆| 久久国模| 人妻少妇精品无码系列中文| 精品综合久久久久久97| a国产一区二区免费入口| av无码国产精品色午夜| 亚洲欧美中文高清在线专区| 国产欧美一区二区精品久久久| 91视频在线观看视频| 欧美性猛交xxxx黑人| 久久黄色网| 亚洲人一区| 亚洲一区二区三区18禁| 天天综合网网欲色| 8AV国产精品爽爽ⅤA在线观看| 日日躁狠狠躁狠狠爱| 欧美黑人欧美精品刺激| 乌海市| 思热99re视热频这里只精品| 人妻丰满熟妇aⅴ无码| 无码一区二区三区免费| 熟女中字在线| 99精品丰满人妻无码| a4yy私人毛片| 色妞色视频一区二区三区四区| 中文字幕人妻中出制服诱惑| 最新国产在线拍揄自揄视频|