java static method_java 中static的几种用法
1.static修飾變量和方法
在類的變量和方法上加上了static修飾符以后,在JVM加載該類的時候就會被分配到方法區(new 出來的對象分配到堆),因此不需要在創建該類的實例以后再進行引用。
有幾點需要特別注意:
在static方法中不能調用其他的非static方法;
不能引用this或者super;
在static的方法上加synchronized占用的是類鎖而非對象鎖,比如一個線程執行一個對象的非static synchronized方法,另外一個線程需要執行這個對象所屬類的static synchronized方法,此時不會發生互斥現象;
2.static靜態代碼塊
public class StaticCodeTest {
public StaticCodeTest(){
System.out.println("我是構造方法,我被執行了");
}
static {
System.out.println("我是static代碼塊,我被執行了,我只會被執行一次");
}
}
public static void main(String[] args){
new StaticCodeTest();
new StaticCodeTest();
}
運行結果:
我是static代碼塊,我被執行了,我只會被執行一次
我是構造方法,我被執行了
我是構造方法,我被執行了
Process finished with exit code0
static代碼塊會在JVM加載類的時候執行,并且只會執行一次,應用較多的場景一般是項目啟動的時候加載初始化配置。
3.靜態內部類
在Java中不能用static修飾頂級類,但是允許我們在一個類里面定義內部靜態類,靜態類只能訪問外部類的靜態成員,不管是靜態方法還是非靜態方法都可以在非靜態內部類中訪問。
public classStaticCodeTest {static classInnerStatiClass{public voidprint(){
System.out.println("我是靜態內部類");
}
}
}
public static void main(String[] args){
new StaticCodeTest.InnerStatiClass().print();
}
4.import static導入
import static 靜態導入是從jdk1.5以后引入的,方式:import static java.lang.Integer.MAX_VALUE;或者:import static java.lang.Integer.*;這樣寫的好處是我們可以直接在代碼中調用引入的靜態方法,而不需要通過classname.method()來引用,減少代碼的重復使用。
總結
以上是生活随笔為你收集整理的java static method_java 中static的几种用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用线程下载网页中的程序并另存到本地
- 下一篇: Install oracle 10g o