類初始化時機

2021-09-26 06:12:25 字數 438 閱讀 8926

虛擬機器規範中並沒有強制約束何時進行載入,但是規範嚴格規定了有且只有下列五種情況必須對類進行初始化(載入、驗證、準備都會隨之發生):

以上 5 種場景中的行為稱為對乙個類進行主動引用。除此之外,所有引用類的方式都不會觸發初始化,稱為被動引用。被動引用的常見例子包括:

system.out.

println

(subclass.value)

;// value 欄位在 superclass 中定義

superclass[

] sca =

newsuperclass[10

];

system.out.

println

(constclass.helloworld)

;

類的初始化時機

什麼情況下需要開始類載入過程的第乙個階段 載入 虛擬機器規範中並沒強行約束,這點可以交給虛擬機器的的具體實現自由把握,但是對於初始化階段虛擬機器規範是嚴格規定了如下幾種情況,如果類未初始化會對類進行初始化。建立類的例項 訪問類的靜態變數 除常量 被final修辭的靜態變數 原因 常量一種特殊的變數,...

JVM中類的初始化時機

只有對類進行主動引用,才會觸發其初始化方法,而除此之外的引用方式稱之為被動引用,不會觸發其初始化方法 這裡先定義乙個utils 名字隨便起的,不要見怪 作為被測試類 package day12 author weihuanwen date created in 2019 5 23 00 14 des...

資源的初始化時機

zend framework 中的資源是什麼時候初始化的呢?還是直接上 來看比較有說服力 protected function bootstrap resource null foreach this getpluginresourcenames as resource elseif is stri...