java中equals與==區別分析

一.
equals()方法是String方法之一: public boolean equals(Object obj)
函數功能:當參數obj引用的對象與當前對象爲同一個對象時,就返回true,否則返回false
由此理解:equals被用來檢測兩個對象是否相等,即兩個對象的內容是否相等。
二.
==用於比較引用和比較基本數據類型:

1)比較基本數據類型,如果兩個值相同,則結果爲true
2)比較引用時,如果引用指向內存中的同一對象,結果爲true
例如:
String s1=new String(“aaa”);//創建字符串對象
System.out.println(s1.equals(“aaa”));//返回true
System.out.println(s1==”aaa”);//返回false
若String s2=”aaa”;
System.out.println(s2==”aaa”);//返回true

三.舉例說明
a.equals(b)是判斷字符串常量a是不是和b在內容上一樣
比如:
String a=”123”;
a.equals(“123”)就是對的,因爲兩者字符串內容一樣。

a==b是判斷字符串常量a在物理內存地址上是不是和b一樣

比如:
String a=”123”,b=”123”;// a,b都指向了”123”的內存區域,所以a,b所指向的物理地址一樣,因而a==b是對的
String a=new String(“123”),b=new String(“123”);// a創建了自己的”123”,b也是;a,b所指向各自的區域,所以a==b是錯誤的

一般對於兩個字符串a,b來說,a==b沒什麼意義的,一般都用a.equals(b)來判斷字符串是否匹配

發佈了13 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章