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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java==和=_java中==和 equal区别

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

明確概念:

對象的引用:當用類創建一個對象時,類中的成員變量被分配內存空間,這些內存空間稱為該對象的實體,而對象中存放著引用(地址),以確保該實體由該對象操作使用。

一、????比較對象為基本數據類型(byte,short,char,int,long,float,double,boolean)

比較兩個基本數據類型是否相等用==,因為只有類才會有equals方法。

備注:String不是基本數據類型

二、比較對象為引用數據類型

euqals和==本質上都是比較比較的是兩個對象的引用(內存地址)是否相同。equals()是Object類的方法 ,object類是所有類的基類,所以每個類都會繼承equals()方法。

但在String,Integer,Date在這些類當中重寫了equals方法,而不再是比較對象在堆內存中的存放地址了,而是比較它們指向的實體(內容)是否相同。

Example:

Person p1=new Person();//使用new 關鍵字創建一個對象會為此對象分配內存空間。

Person p2=null; //此對象還沒有內存空間

p2=p1;//此時p1和p2指向的是同一個內存空間 或說是指向同一個實體(內容)

String s1 = "nihao";

String s2 = "nihao";

內存示意圖

s1==s2 //返回true,指向同一個內存空間,s1和s2為同一個對象

s1.equals(s2)//返回true

String s3=new String("nihao");

String s4=new String("nihao");

內存示意圖:

s3==s4//返回false,s3和s4分別指向不同的內存空間

s3.equals(s4)//返回true,它比較的是兩個字符串的內容

所以 對于引用類型之間進行equals比較,在沒有覆寫equals方法的情況下,還是比較它們在內存中的存放地址是否相同,因為Object的equals方法也是用雙等號(==)進行比較的,所以比較后的結果跟雙等號(==)的結果相同。

總結

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

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