1. 공통점

==, compare, equals 메소드 모두 문자열 비교가 가능함.

 

2. 차이점

== 연산자: 내용과 객체까지 같은지 비교. 

즉, 객체로 저장된 String과 상수 String을 ==연산자로 비교한 값을 확인해 보면 false로 나온다.

 

 

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
public static void main(String[] args) {
 
        String str1 = "abc";
        
        System.out.println("[variable] str1 == \"abc\" ▶︎▶︎▶︎ " + (str1 == "abc") );
        System.out.println("[variable] str1.equals(\"abc\") ▶︎▶︎▶︎ " + str1.equals("abc") );
        System.out.println("[variable] str1.compareTo(\"abc\") == 0 ▶︎▶▶︎︎ " + (str1.compareTo("abc")==0) );
        System.out.println();
        
        String str2 = new String("abc");
        System.out.println("[object] str2 == \"abc\" ▶︎▶︎▶︎ " + (str2 == "abc") );
        System.out.println("[object] str2.equals(\"abc\") ▶︎▶︎▶︎ " + str2.equals("abc") );
        System.out.println("[object] str2.compareTo(\"abc\") == 0 ▶︎▶︎▶︎ " + (str2.compareTo("abc")==0) );
        System.out.println();
 
        
        String [] str3 = new String [1];
        str3[0= "abc";
        System.out.println("[object] str3[0] == \"abc\" ▶︎▶︎▶︎ " + (str3[0== "abc") );
        System.out.println("[object] str3[0].equals(\"abc\") ▶︎▶︎▶︎ " + str3[0].equals("abc") );
        System.out.println("[object] str3[0].compareTo(\"abc\") == 0 ▶︎▶︎▶︎ " + (str3[0].compareTo("abc")==0) );
        
        System.out.println("========================================================");
        System.out.println("[DEBUG] str3[0] ▶︎▶︎▶︎ " + str3[0]);
        System.out.println("[DEBUG] str3 ▶︎▶︎▶︎ " + str3);
    }
cs

 

 

코드 실행 결과

Posted by 知彼知己百戰不殆
,