JVM加載Class文件的原理機制

      網友投稿 1108 2022-05-29

      Java語言是一種具有動態性的解釋型語言,類(Class)只有被加載到JVM后才能運行。當運行指定程序時,JVM會將編譯生成的.class 文件按照需求和一定的規則加載到內存中,并組織成為一個完整的Java應 用程序。這個加載過程是由類加載器完成,具體來說,就是由 ClassLoader和它的子類來實現的。類加載器本身也是一個類,其實質是 把類文件從硬盤讀取到內存中。

      類的加載方式分為隱式加載和顯示加載。隱式加載指的是程序在使用new 等方式創建對象時,會隱式地調用類的加載器把對應的類加載到JVM中。 顯示加載指的是通過直接調用class.forName()方法來把所需的類加載 到JVM中。

      任何一個工程項目都是由許多類組成的,當程序啟動時,只把需要的類加 載到JVM中,其他類只有被使用到的時候才會被加載,采用這種方法一方 面可以加快加載速度,另一方面可以節約程序運行時對內存的開銷。此 外,在Java語言中,每個類或接口都對應一個.class文件,這些文件 可以被看成是一個個可以被動態加載的單元,因此當只有部分類被修改 時,只需要重新編譯變化的類即可,而不需要重新編譯所有文件,因此加 快了編譯速度。

      在Java語言中,類的加載是動態的,它并不會一次性將所有類全 部加載后再運行,而是保證程序運行的基礎類(例如基類)完全加 載到JVM中,至于其他類,則在需要的時候才加載。

      類加載的主要步驟:

      ?裝載。根據查找路徑找到相應的class文件,然后導入。

      ?鏈接。鏈接又可分為3個小步:

      ?檢查,檢查待加載的c lass文件的正確性。

      ?準備,給類中的靜態變量分配存儲空間。

      JVM加載Class文件的原理機制

      ?解析,將符號引用轉換為直接引用(這一步可選)

      ?初始化。對靜態變量和靜態代碼塊執行初始化工作。

      Java JVM

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何取消LaTeX插入圖片時邊框出現虛線陰影?
      下一篇:Java適配器模式(adapter)
      相關文章
      亚洲精品视频免费在线观看| 亚洲乱码中文字幕手机在线| 国产成人99久久亚洲综合精品| 亚洲大香人伊一本线| 亚洲色欲一区二区三区在线观看| 婷婷综合缴情亚洲狠狠尤物| 亚洲av无码成人精品国产 | 久久久久亚洲AV成人网人人软件| 亚洲欧美在线x视频| 亚洲av永久无码精品网址| 亚洲乱码无人区卡1卡2卡3| 亚洲欧美成人一区二区三区| 亚洲精品无码久久久久久| 亚洲色成人WWW永久在线观看| 亚洲综合久久精品无码色欲| 亚洲综合色7777情网站777| 亚洲男人的天堂久久精品 | 亚洲精品无码久久千人斩| 亚洲国产精品嫩草影院在线观看 | 亚洲AV无码片一区二区三区| 蜜桃传媒一区二区亚洲AV | 亚洲av日韩片在线观看| 亚洲精品无码成人片在线观看| 亚洲精品久久久www| 国产亚洲精品无码专区| 亚洲精品成人无限看| 香蕉视频在线观看亚洲| 99亚洲精品高清一二区| 亚洲一本之道高清乱码| 亚洲精品自偷自拍无码| 国产偷国产偷亚洲高清在线| 国产精品亚洲二区在线观看| 亚洲精品无码MV在线观看| 亚洲邪恶天堂影院在线观看| 亚洲免费视频网址| 亚洲色大成WWW亚洲女子| 另类小说亚洲色图| 亚洲中文字幕无码日韩| 亚洲性天天干天天摸| 亚洲午夜在线播放| 国产精品亚洲二区在线|