包裝類數據如何判斷相等

1-對象數據類型如何判斷相等(Integer、Long、Float、Boolean)
對於包裝類對象的比較可以統一用equals
可以直接看源碼

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
直接將數值取出來,進行的比較。
我對等號的理解是,地址。同一個對象他的地址就相同,老師的代碼中,用等號進行比較,有時候會是對的的原因是因爲,在-127-127這個範圍設置了緩存的原因,會取同一個對象,所以相等,如果超出了這個範圍就無法相等了。像129就不相等。更直觀地可以設置斷點,來看一下。
在這裏插入圖片描述
從上圖很容易看出來,當數值不大於127時,如果用過,再次使用的話,會直接拿出來,如果大於127時,會再開闢一個空間,也就是因爲常量池的原因。
2-與基本數據類型相比有何區別
初次學習時只是知道因爲java是面向對象的思想,然後int類型的數據是面向機器的,很多時候需要用到面向對象,會更方便。查找相關博客,結合所學分析。
1.包裝類型可以爲null,而基本類型不能爲。當數據庫查詢爲空時,需要自動拆箱。(裝箱拆箱就是在jdk1.5之前,Integer申明還需要申明,現在默認了)。
阿里開發手冊:數據庫的查詢結果可能是 null,如果使用基本類型的話,因爲要自動拆箱(將包裝類型轉爲基本類型,比如說把 Integer 對象轉換成 int 值),就會拋出 NullPointerException 的異常。
2.包裝類型可用於泛型,而基本類型不可以。
對於泛型的理解不是很深,只有初步的理解,當個參數使用
在這裏插入圖片描述
3.二者存儲的區域也不同,基本類型是在棧中放的,而包裝類是在堆中存放,會佔用更多的空間,使用基本類型也比較方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章