Java中比較運算符compareTo()、equals()與==的區別及應用總結

比較運算符用於判斷兩個數據的大小,例如:大於、等於、不等於。比較的結果是一個布爾值( true 或 false )。

Java 中常用的比較運算符如下表所示:

比較運算符 名稱 舉例 結果
> 大於 a=5;b=2;a>b true
< 小於 a=5;b=2;a<b false
>= 大於等於 a=5;a>=3 ; true
<= 小於等於 a=5;b=2;a<=b; false
== 等於 a=5;b=2;a==b; false
!= 不等於 b=2;b!=2; false

本文主要給大家介紹了關於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是對對象內容的比較。對於基本數據類型,一般用 == ,而對於字符串的比較,一般用equalss

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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章