
Java의 자료형

만약의 자료형이 참조형일 경우에는,
" == " 는 주소를 비교(동등비교)하는 것이고
.equals() 는 값을 비교하는 것이다
그렇다면 이러한 상황에서
String s = scan.next(); // 'A' 입력
String t = scan.next(); // 'A' 입력
String v = t;
System.out.println(s == t); // 1번
System.out.println(s.equals(t)); // 2번
System.out.println(t == v); // 3번
System.out.println(t.equals(v)); // 4번
이 코드들의 출력 값은 어떨까?
1번 라인과 3번 라인은 동등 비교이고,
2번 라인과 4번 라인은 값을 비교하는 것이기 때문에
1. F / 2. T / 3. T / 4. T
출력 값은 이렇게 나오게 된다.
4번을 설명하자면 v는 t를 복사해서 새로운 변수를 만든것이 아니라
v가 t의 주소를 가리키도록 만들어졌기 때문에 True 값이 나오게 된다

Java의 자료형

만약의 자료형이 참조형일 경우에는,
" == " 는 주소를 비교(동등비교)하는 것이고
.equals() 는 값을 비교하는 것이다
그렇다면 이러한 상황에서
String s = scan.next(); // 'A' 입력 String t = scan.next(); // 'A' 입력 String v = t; System.out.println(s == t); // 1번 System.out.println(s.equals(t)); // 2번 System.out.println(t == v); // 3번 System.out.println(t.equals(v)); // 4번
이 코드들의 출력 값은 어떨까?
1번 라인과 3번 라인은 동등 비교이고,
2번 라인과 4번 라인은 값을 비교하는 것이기 때문에
1. F / 2. T / 3. T / 4. T
출력 값은 이렇게 나오게 된다.
4번을 설명하자면 v는 t를 복사해서 새로운 변수를 만든것이 아니라
v가 t의 주소를 가리키도록 만들어졌기 때문에 True 값이 나오게 된다