==與equal

== 在java中,用來判斷兩個對象是不是同一個時使用.例如

String a = "132456";

String b = "132456";

首先我們先了解一下,java中的String類。String不屬於八大基本類型。他屬於java.lang.String

介紹一下String類定義對象的特點。首先String定義對象有兩種方式,一種是:String a = new String()/new String("sdf");

另一種是:String a = "sdf";這種方式與第一種方式的不同之處在於:這種方式定義String對象,程序是先去內存中找,看看是否有一個值爲sdf的對象,如果有,程序把這個對象對應的地址引用指向a,如果沒有,程序會在內存中重新new一個String對象,值爲sdf,並地址引用指向a。所以上面的a對象和b對象其實都是一個內存對象的地址引用,即他們都指向同一個對象,所以a==b是

正確的。但是如果String a = new String("123");String b = new String("123"); a==b 是錯誤的,a與b指的是兩個對象。但a與b指向的對象的值都是123,值是相同的。

 

equal 是 java.lang.Object類中定義的方法。其他對象需要都可以使用equal()方法,因爲java中所有類都直接或間接的繼承

這個類,但這個類中的equal方法,只是比兩個對象是不是同一個對象,即==判斷,所以如果某個對象要使用equal方法,一般都

先重寫這個方法,比如String類,他就重寫了這個方法,擴展了這個方法的使用範圍,使得Equal方法不只是==判斷,還包括了對

象值得判斷,即如果兩個對象不是同一個對象,但對象內容是相同的,那麼也認爲equal成立,即返回true;例如:String a = new String("123");String b = new String("123");a==b 是false;但a.equal(b) 是true;

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