==, 와 equals() 의 차이점

equals 메소드는 비교하고자 하는 대상의 내용 자체를 비교하지만,

== 연산자는 비교하고자 하는 대상의 주소값을 비교함.

직관적으로 느낄 수 있는 차이는 문자열 비교할때는 equals() 메소드를 사용하다는 것이다.


        

boolean result5 = name1.equals(name3); // 사용법

boolean result6 = (name1 == name4);

        

System.out.println("equals결과 :"+result5);  // 결과 true

System.out.println("==연산결과 :"+result6);  // 결과 false


equals 메소드는 재정의 되어 논리적인 문자열 비교를 하기 때문이다. 



String 클래스 한정적으로 equals 메소드가 문자열 내용을 비교하게 재정의 되어있다.
다른 객체를 비교할때 equals 메소드를 사용하면 똑같이 주소값으로 비교하게 된다. 그래서 객체 내용을 비교하고 싶으면 다시 재정의해서 사용해야한다



+ Recent posts