==,Object.equals(), Objects.equals(), Object.deepEquals 使用注意
相等判斷時需注意
- 基本數據類型之間,可以使用==, 包裝類型之間儘可能不要使用==、!=,包裝類數值超過-127~128, 引用類型地址不一樣,在-127~128之間時,翻閱底層源碼發現,使用的是緩存的值
- 使用Object.equals()作內容比較時, 把常量 或可不能爲空的對象放在前面,未知的對象放在括號內
- Objects.equals(a, b) 比較安全,底層對兩個參數都進行了非空判斷
- Objects.deepEquals(a, b) 用來對數組 或反序列化成的未知對象 進行深度比較
初始化值的不一樣
基本數據類型的初始化值爲 0數組
short緩存
int安全
longspa
double對象
boolean = false源碼
包裝類型初始化爲 null序列化
歡迎關注本站公眾號,獲取更多信息