關於Java static 的面試題和答案

1、”static”關鍵字是什麼意思?java中是否可以覆蓋(override)一個private或者是static的方法?

“static”關鍵字表明一個成員變數或者是成員方法可以在沒有所屬的類的實例變數的情況下被訪問。

java中static方法不能被覆蓋,因為方法覆蓋是基於運行時動態綁定的,而static方法是編譯時靜態綁定的。static方法跟類的任何實例都不相關,所以概念上不適用。

2、是否可以在static環境中訪問非static變數?

static變數在java中是屬於類的,它在所有的實例中的值是一樣的。當類被java虛擬機載入的時候,會對static變數進行初始化。如果你的代碼嘗試不用實例來訪問非static的變數,編譯器會報錯,因為這些變數還沒有被創建出來,還沒有跟任何實例關聯上。