淺談Java中的equals和==
在初學Java時,可能會經常碰到下面的代碼:
1 String str1 = new String("hello"); 2 String str2 = new String("hello"); 3 4 System.out.println(str1==str2); 5 System.out.println(str1.equals(str2));
為什麼第4行和第5行的輸出結果不一樣?==和equals方法之間的區別是什麼?如果在初學Java的時候這個問題不弄清楚,就會導致自己在以後編寫代碼時出現一些低級的錯誤。今天就來一起了解一下==和equals方法的區別之處。
一.關系操作符“==”到底比較的是什麼?
下面這個句話是摘自《Java編程思想》一書中的原話:
“關系操作符生成的是一個boolean結果,它們計算的是操作數的值之間的關系”。
這句話看似簡單,理解起來還是需要細細體會的。說的簡單點,==就是用來比較值是否相等。下面先看幾個例子: