一、方便在沒有建立對象的狀況下來進行調用(方法/變量)java
二、static方法函數
三、static變量性能
四、static代碼塊優化
五、構造器實際上不是靜態方法this
六、Java中的static關鍵字不會影響到變量或者方法的做用域3d
七、能經過this訪問靜態成員變量code
八、static是不容許用來修飾局部變量(Java語法的規定)對象
九、靜態內部類:blog
十、靜態導入繼承
import static 包名.類名.靜態成員變量;
import static 包名.類名.靜態成員函數;
十一、代碼執行結果
public class Test extends Base{ static{ System.out.println("test static"); } public Test(){ System.out.println("test constructor"); } public static void main(String[] args) { new Test(); } } class Base{ static{ System.out.println("base static"); } public Base(){ System.out.println("base constructor"); } }
代碼執行結果:
public class Test { Person person = new Person("Test"); static{ System.out.println("test static"); } public Test() { System.out.println("test constructor"); } public static void main(String[] args) { new MyClass(); } } class Person{ static{ System.out.println("person static"); } public Person(String str) { System.out.println("person "+str); } } class MyClass extends Test { Person person = new Person("MyClass"); static{ System.out.println("myclass static"); } public MyClass() { System.out.println("myclass constructor"); } }
代碼執行結果:
public class Test { static{ System.out.println("test static 1"); } public static void main(String[] args) { } static{ System.out.println("test static 2"); } }