天天看點

Java中的static和final關鍵字

一、static關鍵字

1、static關鍵字可以用來修飾類的成員(變量或者方法),若要修飾類,隻能用來修飾内部類,因為此時的内部類相當于外部類的成員,static不可以用來修飾外部類。

2、static修飾的變量與c++相同,不依賴于對象存在,所有的對象共用同一個變量,在一個對象中修改在其他對象中也一并修改,因為他們共用的是同一塊存儲空間。靜态變量可以通過類名(推薦)或者對象名(不推薦)來通路。

3、static修飾的方法也不依賴于對象存在,通過類名(推薦)或者變量名(不推薦)通路,Java中的main函數必須申明為靜态,因為在main執行前還沒有任何的對象被建立,要想通路函數,隻能通路靜态函數。

4、靜态塊:被static修飾的由{}包圍的一段代碼塊,類中的靜态塊一般用于靜态成員的初始化,它僅僅在類加載時(可以了解為程式運作開始前,實際上不一定,但不影響結果)執行一次,絕不會執行第二次。

5、import static java.lang.*表示導入java.lang包的所有靜态成員。

二、final關鍵字

1、final關鍵字可以用來修飾類,方法,變量。

2、被final修飾的變量是常量,隻能初始化或指派一次,相當于c++中的const。初始化即在申明的同時指派,否則隻能在構造器中顯式指派(隻針對成員變量,局部變量也是僅能指派一次,但是顯然不一定在構造器中)。

3、被final修飾的方法可以被繼承,但不能在子類中重寫。

4、倍final修飾的類不可以被繼承。