日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Equals和==的差别

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Equals和==的差别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java中的數據類型。可分為兩類:?
1.基本數據類型

? ? ? ? 包含:byte,short,char,int,long,float,double,boolean?。基礎數據類型比較大小的時候使用的是雙等號(==);?
2.引用數據類型?
? ? ? ? ?除了基本數據類型之外的全部數據結構都是引用數據類型。

此時雙等號是用來比較他們在內存中的存放地址(除非是同一個new出來的對象,他們的比較后的結果為true。否則比較后結果為false);?JAVA其中全部的類都是繼承于Object這個基類的,在Object中的基類中定義了一個equals的方法,這種方法的初始行為是比較對象的內存地 址,但在一些類庫其中這種方法被重寫。如String,Integer,Date在這些類其中equals有其自身的實現。而不再是比較類在堆內存(引用數據類型是存放到堆內存)中的存放地址了。
? ? ? ? 引用數據類型之間進行equals比較,在沒有重寫equals方法的情況下,他們之間的比較還是基于他們在內存中的存放位置的地址值的。由于Object的equals方法也是用雙等號(==)進行比較。

例證:

package demo;/*** @author wanghj* @date 2016/03/06 */ public class CSDN_equals {public static void main(String []args){//variable poolsString str1="TestString";String str2="TestString";String str3="TestStringDif";String str4=new String("TestString");String str5=new String("TestString");//Just compare "=="System.out.println("str1==TestString:"+ (str1=="TestString")); System.out.println("str1==str2:"+ (str1==str2));System.out.println("str1==str3:"+ (str1==str3));System.out.println("str1==str4:"+ (str1==str4));System.out.println("str4==str5:"+ (str4==str5));//Just compare "equals"System.out.println("str1.equals(TestString):"+str1.equals("TestString"));System.out.println("str1.equals(str2):"+str1.equals(str2));System.out.println("str1.equals(str3):"+str1.equals(str3));System.out.println("str1.equals(str4):"+str1.equals(str2));System.out.println("str4.equals(str5):"+str4.equals(str5));System.out.println("equals special test:"+"2016".equals(2016));} }

Object的equals方法:

public boolean equals(Object obj){return this == obj;}

String的equals方法:

public boolean equals(Object obj){if(this == obj)return true;if(obj instanceof String){String s = (String)obj;int i = value.length;if(i == s.value.length){char ac[] = value;char ac1[] = s.value;for(int j = 0; i-- != 0; j++)if(ac[j] != ac1[j])return false;return true;}}return false;}

總結

以上是生活随笔為你收集整理的Equals和==的差别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。