ABOUT ME

95.12.1 / 취준생 / Java

Today
Yesterday
Total
  • 3. operator - (6) OpDemo6 문자열 비교( equals와 == 차이) ★
    java/코드 리뷰 2020. 3. 20. 10:35
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    package operator;
     
    public class OpDemo6 {
        public static void main(String[] args) {
            // ★ 문자열 비교
            // equals() 메서드를 사용해서 문자열의 내용을 비교
            
            // 문자열 리터럴을 이용해서 String 객체를 생성하게 되면
            // 동일한 문자열의 경우 새로 객체를 만들지 않고 기존 객체를 같이 사용 (같은 객체 바라봄)
            // 즉, str1과 str2가 참조하는 객체는 동일한 객체
            // str1과 str2가 가지고 있는 주소값도 동일
            String str1 = "홍길동";
            String str2 = "홍길동";
            
            System.out.println(str1 == str2); // true. str1과 str2의 주소값이 동일하기 때문
            System.out.println(str1.equals(str2)); // true
            System.out.println(str2.equals(str1)); // true
            
            // new 키워드를 이용해서 String 객체를 생성하게 되면
            // 일반적인 객체들처럼 새로운 객체를 생성하고 참조하게 됨
            // 즉, str3과 str4가 참조하는 객체는 다른 객체
            // str3과 str4가 가지고 있는 주소값도 서로 다름
            String str3 = new String("홍길동");
            String str4 = new String("홍길동");
            
            System.out.println(str3 == str4); // false
            System.out.println(str3.equals(str4)); // true
            System.out.println(str4.equals(str3)); // true
            
            // equals() 메서드는 String객체의 생성방식과 상관없이 문자열의 내용을 비교
            // 문자열의 내용이 동일하기만 하면 true
            System.out.println(str1.equals(str3)); // true
            System.out.println(str2.equals(str4)); // true
        }
    }
     
Designed by Tistory.