關於Static程式碼塊、匿名程式碼塊、構造器的小擴充
關於Static靜態程式碼塊、匿名程式碼塊、構造器(構造方法)小擴充
對於Static靜態程式碼塊、匿名程式碼塊、構造器(構造方法)有以下幾個注意事項。
靜態程式碼塊:
- 靜態程式碼塊是與類一起載入的,它是在另外兩個程式碼塊之前執行的,並且只執行一次;
- 在靜態程式碼塊之後執行匿名程式碼塊,其次是構造器。
構造器
- 構造方法是一種特殊的方法,即使不顯示也是預設存在的,其構造方法名必須與類名相同(包括大小寫);
- 構造方法一般用於初始化物件;
- 構造方法不能被繼承,且不能static、final、abstract等的一些修飾符修飾。
匿名程式碼塊
-
匿名程式碼塊有點類似於構造方法,是預設存在的且在工作方法之前的;
-
匿名程式碼塊可以用來賦初值(但一般不建議用它來賦初值)。
我們來寫程式碼驗證一下:
public class OoStatic { { System.out.println("這是一個匿名程式碼塊!"); } static { System.out.println("這是一個靜態程式碼塊!"); } public OoStatic() { System.out.println("這是一個構造器!"); } public static void main(String[] args) { /* //OoStatic s1 = new OoStatic(); //System.out.println("==========="); //OoStatic s2 = new OoStatic(); 當我們沒有進行OoStatic s1 = new OoStatic();操作時,程式程式載入了類,但不會執行匿名程式碼塊以及構造器,然而靜態程式碼塊是與類一起載入的,因此會有一個輸出: 其結果為:這是一個靜態程式碼塊! */ //這裡我們對OoStatic類進行了兩次建立但是static靜態程式碼塊只執行了輸出了一次,表明靜態程式碼塊只能執行一次 OoStatic s1 = new OoStatic(); System.out.println("==========="); OoStatic s2 = new OoStatic(); /* 輸出結果為:這是一個靜態程式碼塊! 這是一個匿名程式碼塊! 這是一個構造器! =========== 這是一個匿名程式碼塊! 這是一個構造器! */ } }
相關文章
- 構造程式碼塊
- static程式碼塊、構造程式碼塊、建構函式以及Java類初始化順序C程式函式Java
- static變數,static程式碼塊,建構函式,程式碼塊等的載入順序變數C程式函式
- Java中靜態程式碼塊、構造程式碼塊、建構函式、普通程式碼塊Java函式
- Java普通程式碼塊,構造程式碼塊,靜態程式碼塊區別,執行順序的程式碼例項Java
- Java中構造方法,構造程式碼塊和靜態程式碼塊執行順序詳解Java構造方法
- Java基礎、jvm 程式碼塊和構造方法的小問題JavaJVM構造方法
- 程式碼塊
- java7-2 構造程式碼塊的概述和講解Java
- Java中建構函式、靜態程式碼塊、程式碼塊的執行順序Java函式
- java 程式碼塊Java
- 五:程式碼塊
- 嬰兒的出生為你解惑建構函式和構造程式碼塊函式
- Java 中的程式碼塊Java
- Java中的程式碼塊Java
- java中的程式碼塊(初始化塊)Java
- Java - 26 程式碼塊Java
- JS常用程式碼塊JS
- Union Find程式碼塊
- 靜態程式碼塊
- Pycharm程式碼塊的設定PyCharm
- 物件與引用,static關鍵字,程式碼塊,包,訪問許可權修飾符物件訪問許可權
- 程式碼初始化塊
- Java靜態程式碼塊Java
- Concurrency(六: 同步程式碼塊)
- Xcode自定義程式碼塊XCode
- openGauss關於PL/SQL匿名塊呼叫測試SQL
- 關於 Go 程式碼結構的思考Go
- Ruby 中的閉包-程式碼塊
- 關於區塊鏈密碼學區塊鏈密碼學
- synchronized 程式碼塊怎麼用synchronized
- Typora 程式碼塊Mac風格化Mac
- xcode10 自定義程式碼塊XCode
- 61行程式碼構建最簡單區塊鏈行程區塊鏈
- Java static方法塊只獲取一次物件控制程式碼供全域性使用Java物件
- 擴充套件推薦:laravel線上程式碼編輯器擴充套件包(純瀏覽器版的vscode)套件Laravel瀏覽器VSCode
- 數論分塊擴充套件套件
- ES6新增方法程式碼塊