2017-02-18 7 views
-3

나는을 사용하면 왜 변경 가능한 객체를 비교할 때 equals()를 사용하는 것이 좋습니다?

은 일반적으로 우리가 ==가 나는 등호와 "사이의 차이 == 알고 가변 객체

에 사용되는 비교 불변의 객체에 대한 등호()를 사용하는 것이 읽기 ",하지만 불변 객체에 equals를 사용하는 것이 왜 바람직한가? 그리고 왜 "=="를 사용하여 변경 가능한 객체를 만들었습니까? 왜냐하면 내 논리에서 두 객체 (신원이 아닌 상태를 비교)를 비교할 때 equals()를 사용하는 것이 권장되지 않는 이유가 무엇입니까?

+4

어디서 읽었습니까? – ByeBye

+3

그래, 완전 학사 야. 당신이 읽는 것에 대해 더 조심해야합니다. 분명히 여러분이 작성한 것에 아무런 문제가 없다면'=='와'equals()'의 차이를 이해하지 못합니다. – Kayaman

+0

'=='** 참조 **를 객체와 비교할 때 비교합니다. 객체가 가변적인지 불변인지는 중요하지 않습니다. –

답변

2

equals항상 개체에 의해 개최 된 값을 비교하는 데 사용됩니다. String 또는 Integer과 같은 불변 객체 또는 List 또는 과 같은 변경 가능한 객체의 값을 비교하는 데 사용됩니다.

equals을 사용하여 두 객체의 동등성을 비교할 때 변경 가능하거나 변경 불가능한 객체에 대해서는 의문의 여지가 없습니다.

반면에 == 심볼은 두 참조가 동일하거나 동일한 객체를 가리키는 지 여부를 완전히 비교합니다.


희망이 있습니다.