public class Test {
public static void main(String[] args) {
String str1 = "Programming";
String str2 = "Programming";
String str3 = new String("Programming");
System.out.println(str1 == str2);
System.out.println(str1 == str3);
System.out.println(str1.equals(str3));
System.out.println(str2.equals(str3));
}
}
해설:
- str1 == str2는 참(true)입니다. 같은 리터럴이기 때문에 같은 메모리 주소를 참조합니다.
- str1 == str3는 거짓(false)입니다. new 키워드를 사용하여 다른 메모리 주소에 저장되었기 때문입니다.
- str1.equals(str3)는 참(true)입니다. equals()는 문자열의 내용만을 비교합니다.
- str2.equals(str3)도 참(true)입니다.
출력 결과:
arduino
true
false
true
true
Java에서 ==와 equals의 차이점
• == 연산자는 두 문자열 객체가 **동일한 참조(메모리 위치)**를 가리키는지를 비교합니다.
• equals() 메서드는 두 문자열의 내용이 동일한지를 비교합니다.
'전산 관련 시험 > 프로그래밍(C, JAVA, Python)' 카테고리의 다른 글
[Python] 프로그래밍 언어 (23.02 19) (0) | 2024.10.06 |
---|---|
[C] 프로그래밍 언어 (선택 정렬 알고리즘) (23.02 18) (1) | 2024.10.06 |
[C] 프로그래밍 언어 (23.02 09) - 스택 이해 (1) | 2024.10.06 |
[C] 프로그래밍 언어 (23.02 07) (1) | 2024.10.06 |
[C] 프로그래밍 언어 (23.02 05) (1) | 2024.10.06 |
댓글