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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

“ == “运算符与equals()方法的区别

發(fā)布時(shí)間:2025/3/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “ == “运算符与equals()方法的区别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

== :運(yùn)算符

  • 可以使用在基本數(shù)據(jù)類型變量和引用類型變量中;
  • 如果比較的是基本數(shù)據(jù)類型變量,比較兩個(gè)變量保存的數(shù)據(jù)是否相等(不一定類型相同,可以自動(dòng)類型提升);
    eg:
  • int i = 10;int j = 10; double d = 10.0; System.out.println(i==j);//true System.out.println(i==d);//true,自動(dòng)類型提升
  • 如果比較的是引用數(shù)據(jù)類型,比較的是兩個(gè)對(duì)象的地址值是否相等,即兩個(gè)引用是否指向同一個(gè)對(duì)象實(shí)體;
    注:使用" == "時(shí),必須保證兩邊的變量類型一致,否則編譯不通過;
    eg:
  • System.out.println("hello" == new java.util.Date());

    equals():方法

  • 是一個(gè)方法,不是運(yùn)算符
  • 只適用于引用數(shù)據(jù)類型
  • Object類的equals()方法源碼:
  • public boolean equals(Object obj){return (this == obj);}

    注:Object類中定義的equals()和==作用相同

  • String、Date、File、包裝類等都重寫了Object類中的equals()方法。重寫后,比較的不是兩個(gè)引用地址是否相同,而是比較兩個(gè)對(duì)象的“實(shí)體內(nèi)容”是否相同(String,Date等內(nèi)部屬性是否相同)
  • 通常情況下,自定義的類,如果使用equals()的話,也通常比較的兩個(gè)對(duì)象的“實(shí)體內(nèi)容”是否相同;
    就需要對(duì)object類中的equals()進(jìn)行重寫。
  • eg: String對(duì)equals() 重寫的源碼:

    public boolean equals (Object anobject) {if (this == anobject) {return true ;}if (anobject instanceof String) {String anotherstring = (String) anobject;int n = value.length;if (n == anotherstring.value.length) {char v1[] = value;char v2[] = anotherString.value;int i = 0;while (n-- != 0 {if (v1[i] != v2[i])return false;i++;}return true;}}return false; }

    總結(jié)

    以上是生活随笔為你收集整理的“ == “运算符与equals()方法的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。