반응형
equlas() 와 "=="의 차이점
equlas() 와 "=="는 어떤 차이점이 있을까?
예전에 자바를 배웠을때 그냥 자바에서는 문자열을 비교할 때 무조건 equlas()를 써야해! 라는 말만 듣고 그냥 equals()만 써왔는데, 한번 그 이유에 대해 알아보도록 하자.
Java에서는 문자열 즉, String 값을 할당하는 방법이 2가지 존재한다.
String str = new String("JAVA");
String str = "JAVA";
이 두 가지 방법을 이용한 예제를 통해 "=="와 equals()의 차이점을 확인해 보도록 하자.
예제 1) equlas() 와 "==" 비교
public class EqualsTest{
public static void main(String[] args){
String a = "JAVA"
String b = "JAVA"
String c = new String("JAVA");
String d = new String("JAVA");
System.out.println( a == b ); // true
System.out.println( b == c ); // false
System.out.println( c == d ); // false
System.out.println( a.equals(b) ); // true
System.out.println( b.equals(c) ); // true
System.out.println( c.equals(d) ); // true
}
}
왜 위와같은 결과들이 나오는 걸까?
"==" 비교 연산자는 주소값을 비교하고
equlas() 메서드는 내용 자체를 비교 즉, 데이터 값을 비교하기 때문에다.
결론은 그냥 안정적으로 문자열을 비교하고자 한다면 equlas() 메서드를 사용하는게 맞다고 생각된다.
반응형
댓글