equals是判斷兩個變量或實例所指向的內存空間的值是不是相同,即值是否相同
除了String和封裝器,equals()和“==”沒什麼區別
但String和封裝器重寫了equals(),所以在這裏面,equals()指比較字符串或封裝對象對應的原始值是否相等,"=="是比較兩個對象是否爲同一個對象
具體實例如下所示:
/** * @Title: temp.java * @Package nlp * @Description: TODO * @author peidong * @date 2017-6-20 下午2:20:21 * @version V1.0 */ package nlp; /** * @ClassName: temp * @Description: 比較“==”與“equals()”的區別 * @date 2017-6-20 下午2:20:21 * */ public class temp { /** * @Title: main * @Description: TODO * @param args * @return void * @throws */ public static void main(String[] args) { // TODO Auto-generated method stub String a = new String("hello"); String b = new String("hello"); boolean res1 = (a == b); boolean res2 = (a.equals(b)); System.out.println(res1); #false System.out.println(res2); # true String c = new String("ssss"); String d = new String("ss"); d += "ss"; boolean res3 = (c ==d); boolean res4 = (c.equals(d)); System.out.println(res3); #false System.out.println(res4); #true // "=="爲false是因爲用new創建對象時返回的引用時不相同的 String s1 = "1"; String s2 = "1"; boolean res5 = (s1 == s2); boolean res6 = (s1.equals(s2)); System.out.println(res5); #true System.out.println(res6); #true String s3 = "1"; String s4 = s3; boolean res7 = (s3 == s4); boolean res8 = (s3.equals(s4)); System.out.println(res7); #true System.out.println(res8); #true String s5 = "1"; String s6 = new String("1"); boolean res9 = (s5 ==s6); boolean res10 = (s5.equals(s6)); System.out.println(res9); #false System.out.println(res10); #true } }