3 回答
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個贊
Python 的str類對其__eq__方法使用值相等。在 Python 中,類可以重寫__eq__來定義==行為方式。
與 Java 相比,Java==總是執(zhí)行引用相等。在 Java 中,僅當(dāng)兩個對象實(shí)際上是同一個對象時==才會返回;true無論其內(nèi)容如何。Java 的運(yùn)算符==與 Python 的運(yùn)算符更具可比性is。
正如評論中指出的,更好的比較是比較這些:
"a".equals("a") // Java
"a" == "a" # Python
Java 的String類具有equals值相等性而不是引用相等性。
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個贊
在Python中==用于通過重寫運(yùn)算符來比較對象的內(nèi)容。eq?(a, b)方法,str類已重寫此方法以便比較對象的內(nèi)容
These?are?the?so-called?“rich?comparison”?methods.?The?correspondence? between?operator?symbols?and?method?names?is?as?follows:?x<y?calls? x.__lt__(y),?x<=y?calls?x.__le__(y),?x==y?calls?x.__eq__(y),?x!=y?calls? x.__ne__(y),?x>y?calls?x.__gt__(y),?and?x>=y?calls?x.__ge__(y).
但是在java中運(yùn)算符在這里==用來比較對象的引用
使用“==”運(yùn)算符來比較文本值是 Java 初學(xué)者最常犯的錯誤之一。這是不正確的,因?yàn)椤?=”僅檢查兩個字符串的引用相等性,即它們是否引用同一對象。
因此,在java中要比較對象的內(nèi)容,您必須使用equals在類中被覆蓋的對象String。
if?(str1.equals(str2))
所以java==運(yùn)算符等于ispython中的運(yùn)算符,它比較兩個引用是否指向同一個對象
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個贊
以下是引用其他的:“我們可以使用 == 運(yùn)算符進(jìn)行引用比較(地址比較),使用 .equals() 方法進(jìn)行內(nèi)容比較。簡單來說,== 檢查兩個對象是否指向同一內(nèi)存位置,而.equals() 計算對象中值的比較?!?/p>
添加回答
舉報
