java中static什麼意思_Java中static的含義和用法
java中,static表示“靜態”的意思,用來修飾成員變數和成員方法,也可以形成靜態static程式碼塊。
1.被static所修飾的變數或者方法會儲存在資料共享區;
2.被static修飾後的成員變數只有一份!
3.當成員被static修飾之後,就多了一種訪問方式,除了可以被物件呼叫之外,還可以直接
被類名呼叫,(類名.靜態成員);
static的特點:
1、隨著類的載入而被載入;
2、優先於物件存在;
3、被所有物件共享;
4、可以通過類名呼叫。
注意事項 !!!
靜態方法只能訪問靜態的成員變數和靜態的成員方法
區域性變數不能被static修飾;
靜態得方法中是不可以定義this、super關鍵字的,因為靜態優先於物件存在,所以靜態方法不可以出this;
靜態變數和成員變數的區別(掌握)
* 靜態變數也叫類變數 成員變數也叫物件變數
A:所屬不同
* 靜態變數屬於類,所以也稱為為類變數
* 成員變數屬於物件,所以也稱為例項變數(物件變數)
B:記憶體中位置不同
* 靜態變數儲存於方法區的靜態區
* 成員變數儲存於堆記憶體
C:記憶體出現時間不同
* 靜態變數隨著類的載入而載入,隨著類的消失而消失
* 成員變數隨著物件的建立而存在,隨著物件的消失而消失
D:呼叫不同
* 靜態變數可以通過類名呼叫,也可以通過物件呼叫
* 成員變數只能通過物件名呼叫
程式碼塊
定義
-
在Java中,使用{}括起來的程式碼被稱為程式碼塊,根據位置和宣告的不同,可以分為區域性程式碼塊,構造程式碼塊,靜態程式碼塊,同步程式碼塊(多執行緒講解)。
-
區域性程式碼塊
-
在方法中出現;限定變數生命週期,及早釋放,提高記憶體利用率
-
-
構造程式碼塊
-
在類中方法外出現;多個構造方法方法中相同的程式碼存放到一起,每次呼叫構造都執行,並且在構造方法前執行
-
-
靜態程式碼塊
-
在類中方法外出現,加了static修飾在類中方法外出現,並加上static修飾;用於給類進行初始化,在載入的時候就執行,並且只執行一次。
-
-
看程式碼寫結果(思考靜態程式碼塊,構造程式碼塊,構造方法的執行順序):
public class Student { static { System.out.println("Student 靜態程式碼塊"); } { System.out.println("Student 程式碼塊"); } public Student() { System.out.println("Student 構造方法"); } } public class StudentTest { static { System.out.println("北大吳彥祖"); } public static void main(String[] args) { System.out.println("我是main方法"); Student s1 = new Student(); Student s2 = new Student(); } }
知道答案的小夥伴歡迎在評論區裡面留言!