1. ==와 equals
1. ==
==는 값과 주소를 모두 비교할 수 있다.
다만, 프리미티브 타입은 ‘값’을 비교하고, 레퍼런스 타입은 ‘주소’를 비교한다.
여기서 ==는 메모리 주소를 비교하는 것! account랑 account2는 다르니 결과 출력 X
2. equals
결과 출력 X
3. 상태값을 비교하는 법 .toString().equals()
account.equals() -> 오브젝트. 주소 비교 account.toString() -> equals() (주소 비교와 값비교)
account.toString()는 String 타입이다. account.toString()는 " ".equals로 똑같이 쓸 수 있다. * 오브젝트가 들고있는 주소를 비교한 것
3-1. 왜 이렇게 나오나?
equals를 ctrl + 좌클릭 해서 확인하면 이렇게, 먼저 주소를 비교하고, 동일하지 않으면 값을 비교하게 되어있어서 그런 것. 즉, equals는 값을 2번 비교하고, 객체의 상태를 비교할 때는 toString equals를 사용한다!!
Share article