public class Demo1 { static { test = 1; // System.out.println(test); } static int test; public static void main(String[] args) { System.out.println("Hello World!"); } }
其實上面的代碼,編譯器會自動編譯爲:java
import java.io.PrintStream; public class Demo1 { static int test = 1; public static void main(String[] args) { System.out.println("Hello World!"); } }
因此致使沒有定義的,也能夠先賦值。ide
注意問題:要有static的包圍着,static會讓編譯器自動優化。
優化