==,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序列化

相關文章
相關標籤/搜索