1. 程式人生 > >Java基礎-static 關鍵字解析

Java基礎-static 關鍵字解析

參考文章:
https://www.cnblogs.com/dolphin0520/p/3799052.html

static的應用:

1.static是為了在沒有建立任何物件的前提下,僅僅通過類本身來呼叫static方法。

只要類被載入了,就能通過類名進行訪問。

2.static 可以用來修飾類的成員方法,類的成員變數

靜態方法是不可以呼叫非靜態方法,但是非靜態方法能夠呼叫靜態方法, 因為靜態方法是在類中的,而非靜態方法必須要以來具體的物件才能被呼叫

static變數: 稱為靜態變數,靜態變數可以被所有的物件所共享,在記憶體之中只有一個副本,它當且僅當在類初次載入時才會被初始化,而非靜態變數時物件所擁有的,在建立物件的時候被初始化,存在多歌副本, 各個物件副本之間互相不影響。

3.static修飾程式碼塊來優化程式效能:原理是static修飾的部分只會在類載入的時候執行一次

常見誤區:

  • static關鍵字不會影響到變數或者方法的作用域和許可權, 在Java之中能夠影響訪問許可權的只有private, public, protected關鍵字
  • 可以通過this來訪問靜態成員變數
public class Main {  
    static int value = 33;
 
    public static void main(String[] args) throws Exception{
        new Main().printValue();
    }
 
    private void printValue(){
        int value = 3;
        System.out.println(this.value); //輸出為33, 因為是通過this.value呼叫了靜態變數。printValue只是一個區域性變數,不會和this相互關聯。
    }
}