"=="操作符的作用
1、用于基本資料類型的比較
Java語言中定義了四類共八種基本類型:
邏輯型:boolean;文本型:char;整型:byte,short,int和long。浮點型:double和float;
2、判斷引用是否指向堆記憶體的同一塊位址。
equals()方法的作用
equals()是判斷兩個變量或執行個體所指向的記憶體空間的值是不是相同,傳回值為布爾類型
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對象的引用。