有關class的載入

2021-08-30 16:07:16 字數 544 閱讀 8849

要手動地把乙個class載入到jvm中可以有兩種方法。

方法一:

使用classloader的loadclass方法,我們檢視jdk可以看到loadclass有兩個,乙個是帶乙個引數的public 方法(即public class loadclass(string name))另乙個是帶兩個引數的protected方法(即protected class loadclass(string name,boolean resolve))。所以我們只能手動的呼叫那個public的方法,而第二個引數的意義就是是否立即對class進行解釋,初始化。所以這樣一來只是載入了class而並未初始化。

方法二:

class.forname(string name)方法,這個東西我們在jdbc中註冊驅動時經常用到吧,實際這個方法是呼叫了loadclass("×××",true),所以一呼叫本方法就會對class進行初始化哦。

下面是乙個測試的demo

public class loadertest 

}class a

}

class載入順序

package com.angus.test 載入方法不等於執行方法,初始化變數則會賦值 類載入順序應為 載入靜態方法 初始化靜態變數 執行靜態 塊 例項化時 先載入非靜態方法 例項化非靜態變數 執行構造 塊 執行建構函式 author angus public class statictest 第...

JVM載入class原理

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

用Class和ClassLoader載入檔案

一 要載入的檔案和.class檔案在同一目錄下,例如 com.x.y 下有類test.class 同時有資源檔案config.properties 那麼,應該有如下 前面沒有 代表當前類的目錄 inputstream is1 test.class.getresourceasstream config...