1.final修飾類
? ? final修飾類不可以被繼承
2.final修飾方法
? ? 子類繼承父類婴氮,不可以重寫父類final修飾方法
? ? 如果父類的方法是public修飾的是掰,子類可以繼承到此方法,子類重寫此方法姆怪,會導(dǎo)致編譯報錯
? ???如果父類的方法是private修飾的,子類不可以繼承到此方法为严,子類可以寫一個和父類final方法一樣的方法虫几,此方法屬于子類,編譯不會報錯
3.final修飾變量
? ? final修飾的變量表示常量赘艳,值不可以改變
? ? final修飾一個基本類型的數(shù)據(jù)時酌毡,初始化之后,值不可以被改變
? ? final修飾一個引用類型時蕾管,初始化之后枷踏,不可以指向其他對象,但是對象的值可以改變
1.static變量
? ? 靜態(tài)變量掰曾,可以被所有對象共享旭蠕,靜態(tài)變量在類加載的時候被加載,分配內(nèi)存旷坦,在內(nèi)存中只有一個下梢,static不可以修飾局部變量。
2.static方法
? ? 靜態(tài)方法中無法直接調(diào)用非靜態(tài)方法和非靜態(tài)變量塞蹭,而非靜態(tài)方法可以直接點用靜態(tài)變量和靜態(tài)方法
3.靜態(tài)代碼塊
? ? 加載類之前孽江,需要進(jìn)行的初始化操作,參數(shù)或?qū)ο蟮某跏蓟?/p>
當(dāng)一個類被主動使用時番电,Java虛擬就會對其初始化岗屏,如下六種情況為主動使用:
當(dāng)創(chuàng)建某個類的新實例時(如通過new或者反射,克隆漱办,反序列化等)
當(dāng)調(diào)用某個類的靜態(tài)方法時
當(dāng)使用某個類或接口的靜態(tài)字段時
當(dāng)調(diào)用Java API中的某些反射方法時这刷,比如類Class中的方法,或者java.lang.reflect中的類的方法時
當(dāng)初始化某個子類時
當(dāng)虛擬機(jī)啟動某個被標(biāo)明為啟動類的類(即包含main方法的那個類)
4.靜態(tài)導(dǎo)包
????當(dāng)我們使用import?static?staticpkg.Man.*;時娩井,在不與本類方法名沖突的前提下暇屋,我們可以在本類中直接使用Man類中的static方法,就像是本類自己的方法一樣洞辣。但是相應(yīng)的其他靜態(tài)參數(shù)和一些非靜態(tài)參數(shù)和非靜態(tài)方法就無法直接調(diào)用了咐刨。
5.靜態(tài)內(nèi)部類
? ? 靜態(tài)內(nèi)部類可以存在靜態(tài)成員,非靜態(tài)內(nèi)部類不可以有靜態(tài)成員扬霜。
? ? 靜態(tài)內(nèi)部類可以訪問外部類的靜態(tài)成員定鸟,非靜態(tài)內(nèi)部類可以訪問外部類的所有成員。
? ??