在最近做題當中,發現==和equals一直讓我傻傻的搞不清楚,因此寫這一篇博客,來總結一下 學習的結果。
首先上代碼
Integer i1=9; int i2=9; Integer i3=Integer.valueOf(9); Integer i4=new Integer(9); System.out.PRintln(i1==i2); System.out.println(i1==i3); System.out.println(i1==i4); System.out.println(i1.equals(i4));結果: true true false true簡單的說“==”用于比較兩個變量的值的大小,通常用于比較兩個基本類型的數據或者兩個引用 變量,在上例中,我理解的是java會自動調用自動裝卸箱機制將封裝類型轉成基本數據類型,所以這幾個變量的數值i1,i2,i3所對應的內存中數值是相等的,圖如下:
而equals是Object類的提供的方法之一,equals()方法的是可以被覆蓋的,因此,它可以 通過覆蓋的方法讓它比較數據的內容,例如String類equals方法是用于比較兩個獨立對象的內容 是否相同,即堆中的內容是否相同。
新聞熱點
疑難解答