天天看點

java差別比較(==與equals()的差別)

"=="操作符的作用

1、用于基本資料類型的比較

Java語言中定義了四類共八種基本類型:

邏輯型:boolean;文本型:char;整型:byte,short,int和long。浮點型:double和float;

2、判斷引用是否指向堆記憶體的同一塊位址。

equals()方法的作用

equals()是判斷兩個變量或執行個體所指向的記憶體空間的值是不是相同,傳回值為布爾類型

equals的基本使用:

例如

java差別比較(==與equals()的差別)

當傳回值為true時,執行while循環中的内容,否則不執行。

注意:這裡不能用操作符“==”,sel和myLove都是變量

while(sel==myLove){
System.out.println("you are myLove");
break;
}
           

String類型比較不同對象内容是否相同,應該用equals,因為==用于比較引用類型和比較基本資料類型時具有不同的功能。

分析如下:

String作為一個對象來使用

例子一:對象不同,内容相同,"=="傳回false,equals傳回true

String s1 = new String("java");
String s2 = new String("java");

System.out.println(s1==s2); //false
System.out.println(s1.equals(s2)); //true
           

例子二:同一對象,"=="和equals結果相同

String s1 = new String("java");
String s2 = s1;

System.out.println(s1==s2); //true
System.out.println(s1.equals(s2)); //true
           

String作為一個基本類型來使用

如果值不相同,對象就不相同,是以"==" 和equals結果一樣

String s1 = "java";
String s2 = "java";

System.out.println(s1==s2); //true
System.out.println(s1.equals(s2)); //true
           

如果String緩沖池内不存在與其指定值相同的String對象,那麼此時虛拟機将為此建立新的String對象,并存放在String緩沖池内。

如果String緩沖池記憶體在與其指定值相同的String對象,那麼此時虛拟機将不為此建立新的String對象,而直接傳回已存在的String對象的引用。