1. 程式人生 > >描述一下JVM 載入class檔案的原理機制?

描述一下JVM 載入class檔案的原理機制?

JVM中類的裝載是由ClassLoader和它的子類來實現的,Java ClassLoader 是一個重要的Java執行時系統元件。它負責在執行時查詢和裝入類檔案的類。

當Java編譯器編譯好.class檔案之後,我們需要使用JVM來執行這個class檔案。那麼最開始的工作就是要把位元組碼從磁碟輸入到記憶體中,這個過程我們叫做【載入 】。載入完成之後,我們就可以進行一系列的執行前準備工作了,比如: 為類靜態變數開闢空間,將常量池存放在方法區記憶體中並實現常量池地址解析,初始化類靜態變數等等

當我們使用命令來執行某一個Java程式(比如Test.class)的時候:java Test
(1) java.exe 會幫助我們找到 JRE ,接著找到位於 JRE 內部的 jvm.dll ,這才是真正的 Java 虛擬機器器 , 最後載入動態庫,啟用 Java 虛擬機器器。
(2) 虛擬機器器啟用以後,會先做一些初始化的動作,比如說讀取系統引數等。一旦初始化動作完成之後,就會產生第一個類裝載器 ―― Bootstrap Loader(啟動類裝載器 ) 。
(3) Bootstrap Loader 所做的初始工作中,除了一些基本的初始化動作之外,最重要的就是載入 Launcher.java 之中的 ExtClassLoader(擴充套件類裝載器) ,並設定其 Parent 為 null ,代表其父載入器為 BootstrapLoader 。
(4) 然後 Bootstrap Loader 再要求載入 Launcher.java 之中的 AppClassLoader(使用者自定義類裝載器 ) ,並設定其 Parent 為之前產生的 ExtClassLoader 實體。這兩個載入器都是以靜態類的形式存在的。
這裡要請大家注意的是, LauncherE

xtClassLoader.classLauncherAppClassLoader.class 都是由 Bootstrap Loader 所載入,所以 Parent 和由哪個類載入器載入沒有關係。

相關推薦

描述一下JVM載入class檔案原理機制

JVM中類的裝載是由類載入器(ClassLoader)和它的子類來實現的,Java中的類載入器是一個重要的Java執行時系統元件,它負責在執行時查詢和裝入類檔案中的類。    由於Java的跨平臺性,經過編譯的Java源程式並不是一個可執行程式,而是一個或多個類檔案。當J

描述一下JVM 載入class檔案原理機制?

JVM中類的裝載是由ClassLoader和它的子類來實現的,Java ClassLoader 是一個重要的Java執行時系統元件。它負責在執行時查詢和裝入類檔案的類。 當Java編譯器編譯好.class檔案之後,我們需要使用JVM來執行這個class檔案。那

21、描述一下JVM載入class檔案原理機制

答:JVM中類的裝載是由類載入器(ClassLoader)和它的子類來實現的,Java中的類載入器是一個重要的Java執行時系統元件,它負責在執行時查詢和裝入類檔案中的類。 由於Java的跨平臺性,經過編譯的Java源程式並不是一個可執行程式,而是一個或多個類檔案。當Ja

JVM載入class檔案原理機制

Java語言是一種具有動態性的解釋型語言,類(class)只有被載入到JVM中後才能執行。當執行指定程式時,JVM會將編譯生成的.class檔案按照需求和一定的規則載入到記憶體中,並組織成為一個完整的Java應用程式。這個載入過程是由類載入器來完成的,具體來說,就是由Clas

JAVA面試常備題、JVM載入class檔案原理機制

Java中的所有類,都需要由類載入器裝載到JVM中才能執行。類載入器本身也是一個類,而它的工作就是把class檔案從硬碟讀取到記憶體中。在寫程式的時候,我們幾乎不需要關心類的載入,因為這些都是隱式裝載的,除非我們有特殊的用法,像是反射,就需要顯式的載入所需要的類。 Ja

jvm載入class檔案原理機制分析

案例分析 A、B類中均包含靜態程式碼塊,非靜態程式碼塊以及構造器,A類是B類的父類。 public class A { static { System.out.print("A中靜態程式碼塊>>>"); }

JVM載入class檔案原理機制簡單總結

Java中的所有類,必須被裝載到jvm中才能執行,這個裝載工作是由jvm中的類裝載器完成的,類裝載器所做的工作實質是把類檔案從硬碟讀取到記憶體中 java中的類大致分為三種:     1).系統類      2).擴充套件類      3).由程式設計師自定義的類類裝載方式

JVM載入class檔案原理機制是什麼?類載入器的工作原理

Java語言是一種具有動態性的解釋型語言,類(class)只有被載入到JVM中後才能執行。當執行指定程式時,JVM會將編譯生成的.class檔案按照需求和一定的規則載入到記憶體中,並組織成為一個完整的Java應用程式。這個載入過程是由類載入器來完成的,具體來說,就是由Cla

Java提高篇——JVM載入class檔案原理機制

  在面試java工程師的時候,這道題經常被問到,故需特別注意。 1、JVM 簡介   JVM 是我們Javaer 的最基本功底了,剛開始學Java 的時候,一般都是從“Hello World ”開始的,然後會寫個複雜點class ,然後再找一些開源框架,比如Spring ,Hibernate 等等,再然

【轉】JVM載入class檔案原理機制

JVM載入class檔案的原理機制 收藏 1.Java中的所有類,必須被裝載到jvm中才能執行,這個裝載工作是由jvm中的類裝載器完成的, 類裝載器所做的工作實質是把類檔案從硬碟讀取到記憶體中 2.java中的類大致分為三種: 1.系統類 2.擴充套件類

JVM載入Class檔案原理機制

1.java中的所以類,必須被載入到JVM中才能執行,這個載入是由類載入器完成的,類載入器所做的工作實質上是把類檔案從硬碟讀取到記憶體中 2.java中的類大致分為三種: 1、系統類 2、擴充套件類 3、程式設計師自定義的類 3.類載入的方式,兩種 1、隱式裝載,程式在執行

Java進階——JVM載入class檔案原理機制

  在面試java工程師的時候,這道題經常被問到,故需特別注意。回到頂部1、JVM 簡介  JVM 是我們Javaer 的最基本功底了,剛開始學Java 的時候,一般都是從“Hello World ”開始的,然後會寫個複雜點class ,然後再找一些開源框架,比如Spring ,Hibernate 等等,再然

jvm載入class檔案機制j

1、載入類檔案      a、讀取class檔案,從jar包、war包、class檔案、jsp檔案等處都可以。           a.1、採用雙親委派機制載入類,由classLoader和其子類完成,支援自定義

JVM載入class檔案原理

原始檔:編寫Java原始檔(我們也稱之為原始碼檔案),它的副檔名為.java; 編譯:然後通過編譯器把原始檔編譯成位元組碼檔案,位元組碼副檔名為.class; 執行:最後使用直譯器來執行位元組碼檔案。 類載入的主要步驟: 當程式要使用某個類時,如果該類還未被載入到記

Java中的基礎----JVM載入class檔案原理

Java是一種解釋型語言,class檔案只有被載入到JVM中才能執行。當執行指定程式時,JVM會將編譯生成的.class檔案按一定的規則(從硬碟)載入到記憶體中(由類載入器classLoader和它的子類來完成)。 有以下兩種載入方式: 1)隱式載入: 程式使用new等方式

JVM載入class檔案的一些理解

Java是一種動態解釋型語言,類(class)只有被載入到JVM中後才能執行。每當一個Java程式執行時,都會有一個對應的JVM例項,只有當程式執行結束後,這個JVM才會退出。JVM例項通過呼叫類的main()方法來啟動一個Java程式。當執行指定程式時,JVM將編譯生成的.class檔案按照需求和一定的規則

java載入class檔案(類載入機制)

一概述:在編譯期,所有的*.java檔案被編譯成.class檔案。在執行期,class檔案只有被載入到jvm記憶體中才能執行。這個裝載工作是由類裝載器完成的。實質就是把class檔案從硬碟讀取到記憶體中,並對資料進行校驗,轉化解析和初始化,最終形成可以被jvm直接使用的ja

JVM的啟動和載入class檔案流程

載入主類的class檔案 Java執行方式有兩種:jar方式和class方式。 + 裝載:查詢和匯入class檔案; 連線: (1)檢查:檢查載入的class檔案資料的正確性; (2)準備:為類的靜態變數分配儲存空間; (3)解析:將符號引用轉換成

如何載入Class檔案JVM

如下圖所示,是ClassLoader載入一個class檔案到JVM時需要經過的步驟: 第一階段是找到.class檔案並把這個檔案包含的位元組碼載入到記憶體中。 第二階段又可以分為三個步驟,分別是位元組碼驗證、Class類資料結構分析及相應的記憶體分配和最

Ogre程式載入mesh檔案原理

createEntity() (建立實體) 在當前場景中建立一個實體例項並返回它的物件指標,作為 SceneManager 類的一個成員函式,它有兩個過載: Entity * Ogre::SceneManager::createEntity ( cons