一、==
1.可以使用在基本資料型別變數和引用資料型別變數中
2.如果比較的是基本資料型別,則比較的是變數儲存的資料值是否相等(型別不一定要相等)
如果比較的是引用資料型別,則比較兩個物件的地址是否相等,即兩個引用是否指向同一個實體
二、equals()方法的使用
1.是一個方法,而非運算子
2.只能適用於引用資料型別
3.Object類中equals()的定義
public boolean equals(Object obj) {
return this == obj;
}
說明: Object類中的equals()和==的作用是一樣的,比較地址值是否相等
4.String、Data、File、包裝類等都重寫了Object類中的equals()方法,比的不是地址值
5.自定義類如果使用equals()的話,通常比較物件的實體內容,需要對Object類中的equals()方法重寫
三、Object類的toString()方法
1.當我們輸出一個物件時,實際上就是呼叫當前物件的toString()方法
2.Object類中toString()的定義:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
3.String、Date、File、包裝類等都重寫了Object類的toString()方法,使得返回的是實體內容
4.自定義也可以重寫toString()方法,返回物件的實體內容
四、包裝類
五、static靜態變數(類變數)
1.靜態的
2.可以修飾屬性、方法、程式碼塊、內部類
3.修飾屬性: 稱作靜態屬性
例項變數: 建立多個物件時,每個物件都會擁有一套非靜態變數
例項變數的載入是在物件建立完成後,或過程中
靜態變數: 所有物件共用一個靜態變數,隨著類的載入而載入,類只會載入一次
靜態變數的載入(載入到記憶體中)要早於物件的建立,放在方法區的靜態域中
4.修飾方法
①隨類的載入而載入
②靜態方法中只能去呼叫靜態方法或屬性
六、單例模式
懶漢式: 延遲物件的建立
餓漢式: 物件載入時間過長、執行緒安全
七、final
1.可以用來修飾類、方法、變數
2.用來修飾類: 不能被其他的類繼承(例如String、StringBuffer、Math等)
3.用來修飾方法: 此方法不能被重寫(Override)
4.用來修飾變數: 此時的“變數”就稱為一個常量
>修飾屬性: 可以考慮賦值的位置: 顯示初始化、程式碼塊中賦值、構造器中初始化
>修飾區域性變數:
static final 用來修飾屬性: 全域性常量