static語句塊的學習

2021-09-01 17:30:11 字數 1063 閱讀 5376

引用eway 

乙個類的執行,jvm做會以下幾件事情 1、類裝載 2、鏈結 3、初始化 4、例項化;而初始化階段做的事情是初始化靜態變數和執行靜態方法等的工作。

class.forname(args[0],true,off.getclass().getclassloader()):jvm在load class之後就進行initial的工作。

class.forname(args[0],false,off.getclass().getclassloader()):jvm不需要在load class之後進行initial的工作。將initial的工作推遲到了newinstance的時候進行。

所以,static塊的絕對不是什麼「只是在類被第一次實體化的時候才會被僅僅呼叫一次」,而應該是在類被初始化的時候,僅僅呼叫一次。

class staticdemo

public staticdemo()

}public class statictest catch(classnotfoundexception e)

}}

執行結果:

==staticdemo被載入到jvm==

info=靜態語句塊能操縱靜態的物件

staticdemo被例項化了

把引數true變成false,並例項化兩個staticdemo物件 。

class staticdemo

public staticdemo()

}public class statictest catch(classnotfoundexception e)

staticdemo obj1=new staticdemo();

staticdemo obj2=new staticdemo();

}}

執行結果:

==staticdemo被載入到jvm==

info=靜態語句塊能操縱靜態的物件

staticdemo被例項化了

staticdemo被例項化了

測試static語句塊是不是同步的

測試 static 塊是不是同步的 public class testifstaticblockisalwayssynchronized 建立 testclass 物件的執行緒 static class createtestclassthread extends thread class testc...

Java 靜態語句塊 語句塊 建構函式

以下是一道筆試題 package com.example public class parent static package com.example public class child extends parent static public static void main string ar...

static 塊的定義與使用範例

下面通過乙個例項來介紹如何使用 static 塊來優化 該 冗餘部分用綠色標出,該函式被呼叫四次。public static final string mood image key pre pref camera water mark mood image key public static fin...