integer 比較相等 JAVA中String類里重寫equals方法比較的是內(nèi)容還是地址?
JAVA中String類里重寫equals方法比較的是內(nèi)容還是地址?在Java中,字符串、數(shù)學、整數(shù)、雙精度。。。。這些封裝類重寫了對象中的equals()方法,因此它不再比較內(nèi)存中對象的地址,而是比
JAVA中String類里重寫equals方法比較的是內(nèi)容還是地址?
在Java中,字符串、數(shù)學、整數(shù)、雙精度。。。。這些封裝類重寫了對象中的equals()方法,因此它不再比較內(nèi)存中對象的地址,而是比較對象中實際包含的整數(shù)的值,即比較內(nèi)容。同樣,對象的equals()方法比較地址值,因此當對象的equals相等時,它們的hashcode必須相等。因為它們都是對象的地址,所以如果要將自己的類添加到集合類中,必須記住重寫這兩個方法。在eclipse中重寫hashcode和equals方法非常方便。只需右鍵單擊->source->generate hashcode()和equals()。
equals什么意思?
之間的區(qū)別。等于()和==就是這樣。Equals()只判斷值是否相等,而不管它們是否具有相同的地址。和==區(qū)別的原因是某些類(如string、integer等)重寫equals,但不重寫equals的類(如我們自己的類)只能從中重寫如果對象類繼承equals方法,它的equals方法等于==除非我們重寫這個類中的equals。
此外,“==”比“equals”運行得更快,因為“==”只是一個引用。