Java static意思
在Java中,static
關鍵字具有以下幾種用途:
- 靜態變數(Static Variables): 當
static
關鍵字用於變數聲明時,它表示該變數是靜態的。這意味著在類的記憶體中只有一個這樣的變數,所有該類的對象共享這個變數。靜態變數可以通過類名直接訪問,也可以通過對象訪問。
public class MyClass {
static int staticVar = 10;
public void accessStaticVar() {
System.out.println(staticVar);
}
}
public class MainClass {
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
System.out.println(MyClass.staticVar); // 通過類名訪問靜態變數
obj1.accessStaticVar(); // 通過對象訪問靜態變數
}
}
- 靜態方法(Static Methods): 當
static
關鍵字用於方法聲明時,它表示該方法是靜態的。靜態方法可以直接通過類名調用,而不需要創建類的實例。通常,靜態方法用於執行與類的功能相關的操作,而不是該類的特定實例。
public class MyClass {
static int staticVar = 10;
public static void staticMethod() {
System.out.println(staticVar);
}
public void instanceMethod() {
staticMethod();
}
}
public class MainClass {
public static void main(String[] args) {
MyClass.staticMethod(); // 直接通過類名調用靜態方法
}
}
- 靜態代碼塊(Static Blocks): 靜態代碼塊用於在類被載入時初始化一些靜態資源。當Java虛擬機(JVM)載入這個類時,會首先執行靜態代碼塊中的代碼。
public class MyClass {
static int staticVar = 10;
static {
staticVar = 20;
}
}
- 靜態導入(Static Imports): 使用
static
關鍵字可以導入類中的靜態資源,使得可以直接使用靜態變數和靜態方法,而不需要通過類名訪問。
import static java.lang.System.out;
public class MainClass {
public static void main(String[] args) {
out.println("Hello, World!"); // 直接使用靜態導入的out對象
}
}
總結一下,static
關鍵字用於創建靜態成員或靜態方法,這些成員或方法可以被類的所有實例共享,並且可以通過類名直接訪問。