본문 바로가기

Java

[Java] 문자열 비교 == 과 equals()

- 자바는 문자열 리터럴이 동일하면 String 객체를 공유하도록 설계되어 있음

public class EqualsEx {
    public static void main(String[] args) {
        // 동일한 String 객체의 번지가 저장됨
        String name1 = "sky";
        String name2 = "sky";

        if(name1 == name2) {
            System.out.println("name1과 name2는 참조가 같음");
        } else {
            System.out.println("name1과 name2는 참조가 다름");
        }

        if(name1.equals(name2)) {
            System.out.println("name1과 name2는 문자열이 같음");
        }

        // new 연산자로 String 객체를 생성하면 서로 다른 객체의 번지를 가짐
        String name3 = new String("sky");
        String name4 = new String("sky");

        if(name3 == name4) {
            System.out.println("name3과 name4는 참조가 같음");
        } else {
            System.out.println("name3과 name4는 참조가 다름");
        }

        if(name3.equals(name4)) {
            System.out.println("name3과 name4는 문자열이 같음");
        }
    }
}

-

 

 

name1과 name2는 참조가 같음
name1과 name2는 문자열이 같음
name3과 name4는 참조가 다름
name3과 name4는 문자열이 같음

'Java' 카테고리의 다른 글

[Java] LinkedBlockingQueue 클래스  (0) 2023.12.12
[Java] 맥북 m2 JDK 설치  (1) 2023.11.19
Java 네트워킹(networking)  (0) 2023.01.26
Java 입출력(I/O)  (0) 2023.01.26
Java Optional<T>  (0) 2023.01.20