1. 程式人生 > 其它 >java中static什麼意思_Java中static的含義和用法

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();
    }
}

知道答案的小夥伴歡迎在評論區裡面留言!