== 과 .equals()
둘 다 "같다"를 검사하지만 보는 것이 다르다. ==는 기본형(int, long 등)이면 값을, 객체면 참조(객체가 저장된 주소)를 비교한다. 두 객체가 내용은 같아도 new로 따로 만들어졌다면 ==는 false다. .equals()는 클래스가 정의한 기준으로 "내용이 같은가"를 비교한다 — BigDecimal·String 같은 타입은 값이 같으면 true를 돌려주도록 이미 구현돼 있다. 그래서 숫자나 문자열 같은 객체를 비교할 때는 ==가 아니라 .equals()를 쓴다.
자신만의 철학을 만들어가는 중입니다.
최상단으로 이동했습니다!