1. static關鍵字
- static修飾的變量叫做靜態變量。當所有對象的某個屬性的值是相同的,建議將該屬性定義為靜態變量,來節省內存的開銷。
- 靜態變量在類加載時初始化,存儲在堆中。
- static修飾的方法叫做靜態方法。
- 所有靜態變量和靜態方法,統一使用“類名.”調用。
- 靜態方法中不能使用this關鍵字。因此無法直接訪問實例變量和調用實例方法。
- 靜態代碼塊在類加載時執行,一個類中可以編寫多個靜態代碼塊,遵循自上而下的順序依次執行。
- 靜態代碼塊代表了類加載時刻,如果你有代碼需要在此時刻執行,可以將該代碼放到靜態代碼塊中。
2. final關鍵字
- final修飾的類不能被繼承
- final修飾的方法不能被覆蓋
- final修飾的變量,一旦賦值不能重新賦值
- final修飾的實例變量必須在對象初始化時手動賦值
- final修飾的實例變量一般和static聯合使用:稱為常量
- final修飾的引用,一旦指向某個對象后,不能再指向其它對象。但指向的對象內部的數據是可以修改的。
3. this關鍵字
- this出現在實例方法中,代表當前對象。
- this本質上是一個引用,該引用保存當前對象的內存地址。
- 通過“this.”可以訪問實例變量,可以調用實例方法。
- this存儲在:棧幀的局部變量表的第0個槽位上。
- this. 大部分情況下可以省略,用于區分局部變量和實例變量時不能省略。
- this不能出現在靜態方法中。
- this(實參):只能出現在構造方法的第一行
4. super關鍵字
- super代表的是當前對象中的父類型特征。
- super不能使用在靜態上下文中。
- 當父類和子類中定義了相同的屬性(實例變量)或者相同方法(實例方法)時,如果需要在子類中訪問父類的屬性或方法時,super.不能省略。
- super(實參):通過子類的構造方法調用父類的構造方法,目的是為了完成父類型特征的初始化。
- 當一個構造方法第一行沒有顯示的調用“super(實參);”,也沒有顯示的調用“this(實參)”,系統會自動調用super()。
- super(實參); 這個語法只能出現在構造方法第一行。
- 在Java語言中只要new對象,Object的無參數構造方法一定會執行。