java中的Equals和==
java中的數據類型,可分爲兩類:
- 基本數據類型:包括了byte,int,char,long,float,double,boolean,short,他們之間的比較,應用雙等號(==),比較的是他們的值。因爲它們不是對象,所以沒有equals方法。
- 複合數據類型:即是對象的引用
- 使用==比較:比較的是他們在內存中的存放地址,所以,如果他們的引用指向堆中的同一個對象實例,他們的比較後的結果爲true,否則比較後結果爲false。
- 使用equals比較:java當中所有的類都是繼承於Object這個基類的,在Object中的基類中定義了一個equals的方法,這個方法的初始行爲是比較對象的內存地址,但在一些類庫當中這個方法被覆蓋掉了,如String,Integer,Date在這些類當中equals有其自身的實現,而不再是比較類在堆內存中的存放地址了。(String用euqals可以直接比較值)