본문 바로가기
Language/Java

[Java] 문자열 동등비교

by agor 2023. 7. 25.

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 값이 나오게 된다