static關鍵字特點
- 隨着類的加載而加載
- static修飾的變量和方法都會放在方法區中靜態區,是屬於類的。
- 靜態變量屬於類不屬於對象
- 對象也可以使用靜態變量
- 當沒有對象時可以直接用類來調用靜態變量
- 被類的所有對象共享
- 靜態的內容存在於方法區的靜態區
static的使用
- 可以通過類名調用
- 類名.靜態變量
- 類名.靜態方法
public class TestStatic {
public static void main(String[] args) {
// 類名.靜態變量
System.out.println(Dog.species);
//類名.靜態方法
Dog.bark();
}
}
class Dog{
static String species = "animal";
String color;
static public void bark(){
System.out.println("wangwangwang...");
}
}
靜態代碼塊
- 不包含在任何方法中的靜態代碼塊(static block)。
- 作用:用來初始化類的靜態成員變量。
public class TestStatic {
public static void main(String[] args) {
System.out.println(Dog.color);
}
}
class Dog{
//靜態變量
static String color;
//靜態代碼塊(只能初始化靜態變量,不能初始非靜態變量!)
static{
color = "棕色";
}
}
- 特點:
- 在類中方法外出現,並加上static修飾。
- 在加載的時候就執行,並且值執行一次
static修飾與非static修飾的區別
總結:
以上