Java基礎-static 關鍵字解析
阿新 • • 發佈:2018-11-22
參考文章:
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相互關聯。 } }