您好,登錄后才能下訂單哦!
前言
比較運算符用于判斷兩個數據的大小,例如:大于、等于、不等于。比較的結果是一個布爾值( true 或 false )。
Java 中常用的比較運算符如下表所示:
本文主要給大家介紹了關于Java比較運算符compareTo()、equals()與==區別及應用的相關內容,下面話不多說了,來一起看看詳細的介紹吧
1、== 和 equals的區別:
==主要是兩個變量值的比較,返回值為true 或者是false。對于普通變量,如:int a=10; int b= 10; a==b,返回為 true。
而對于下面情況:
String a=new String("abc"); String b=new String("abc");
a==b; 返回的則是一個false。這是因為,對于對象的比較是對對象引用的比較,對于a和b ,他們在內存中對應的地址是不一樣的,所以 a==b 返回的值是一個false.
==操作符并不涉及對象內容的比較。若要對對象內容進行比較,則用equals. 如果 在本例中,a.equals(b)則返回是一個true值。
總而言之,==是對對象地址的比較,而equals是對對象內容的比較。對于基本數據類型,一般用==,而對于字符串的比較,一般用equals
2、對于compareTo(), 在API中,java.lang包下面的基本數據類型的封裝類都提供了該方法,如Integer,Float,Byte,Short,Character 等
在基本數據中,compareTo()是比較兩個Character 對象;
在 Boolean中,是用boolean的實例于其它實例進行比較;
在String 中,則是按照字典順序進行比較,返回的值是一個int 型。
貼一段代碼
public class Test{ public static void main(String args[]){ String s1=new String("abc"); String s2=new String("abc"); System.out.println((s1==s2)? "true":"false"); System.out.println((s1.equals(s2))? "true":"false"); if(s1.compareTo(s2)==0){ System.out.println("s1 is equal s2");} s1=s2; System.out.println((s1==s2)? "true":"false"); } }
程序的運行結果為:
false
true
s1 is equals s2
true
這里需要說明的一點,s2對象賦值給s1之后,s2和s1的引用其實是指向了內存中的同一個位置。所以,再進行比較時,就是true.
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。