String은 참조형 변수이기 때문에 equals()로 값을 비교하기.
- ==을 사용 할 경우
==을 사용하면 참조형 변수인 String은 2번의 이동으로 변수의 값을 가져오는데, ==으로 비교를 하면 1번째 이동했을 때의 참조주소를 비교하여 ture / false 를 출력한다. 그러므로 똑같은 값인 A를 가지고 있어도 참조주소가 다르면 false가 출력된다.
- equals를 사용 할 경우
equals를 사용 할 경우에는 2번을 이동 한 후에 값을 비교한다. 그래서 s1.equals(s2)를 하면 ture가 출력된가.

package ex17;
public class Ha03 {
public static void main(String[] args) {
//가니까 값이 있다.
int n1 = 1;
int n2 = 1;
System.out.println(n1 == n2);
// 가니까 주소가 있다. 근데 참조주소가 같다.
String s1 = "A";
String s2 = "A";
System.out.println(s1 == s2);
s2 = s2 + "B";
System.out.println(s1 == s2);
// 최종 목적지를 검사 (값) - equals ((1)== 통과 못하면 -> (2)최종 값)
String s3 = new String("A");
String s4 = new String("A");
System.out.println(s3 == s4); // 가장 가까운 값을 비교
System.out.println(s3.equals(s4)); // 최종적으로 객체의 값을 비교
}
}

Share article