기초

[Java]==와 equals

  • -
반응형

자바에서 문자열을 비교할 때 주로 사용하는 "=="와 "equals"는 비교할 때 사용된다는 점에서 공통점이 있지만 비교 방식에는 차이가 있다.


==객체의 주소를 비교하는 연산자이며 equals객체의 값을 비교하는 함수이다.


        String aDrink = new String("Americano");
        String bDrink = new String("Americano");        
        String cDrink = "Americano";




a의 아메리카노, b의 아메리카노, c의 아메리카노가 있다고 할 때 "equals" 함수는 각각의 "아메리카노"라는 을 비교하는 것이다. 따라서 아래 코드는 true를 반환한다. 만약 b의 "레몬에이드"였다면 false를 반환했을 것이다.


        if(aDrink.equals(bDrink)){
            System.out.println("-> true");
        } else {
            System.out.println("-> false");        
        }

반면 "==" 연산자는 a와 b, a와 c 즉, "어디"의 아메리카노인지 아메리카노의 주소를 비교한다. 때문에 아래 결과는 false이다.


        if(aDrink == bDrink){
            System.out.println("-> true");
        } else {
            System.out.println("-> 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package biz.test;
 
public class Cafe2{
     
    public static void main(String args[]) {                        
        String aDrink = new String("Americano");
        String bDrink = new String("Americano");        
        String cDrink = "Americano";
        
        System.out.println(aDrink);   
        System.out.println(bDrink); 
        System.out.println(cDrink);
        
        System.out.println("aDrink == bDrink");
        if(aDrink == bDrink){
            System.out.println("-> true");
        } else {
            System.out.println("-> false");        
        }
        
        System.out.println("aDrink.equals(bDrink)");
        if(aDrink.equals(bDrink)){
            System.out.println("-> true");
        } else {
            System.out.println("-> false");        
        }
        
        System.out.println("aDrink == cDrink");
        if(aDrink == cDrink){
            System.out.println("-> true");
        } else {
            System.out.println("-> false");        
        }
        
        System.out.println("aDrink.equals(cDrink)");
        if(aDrink.equals(cDrink)){
            System.out.println("-> true");
        } else {
            System.out.println("-> false");        
        }       
    }
}
cs


<결과>


반응형

'기초' 카테고리의 다른 글

[Java]추상클래스와 인터페이스  (0) 2021.11.09
[알고리즘]재귀함수(Recursion)  (0) 2020.02.01
[Java]Iterator  (2) 2018.08.28
[Java]ArrayList와 LinkedList(+Vector)  (0) 2018.08.24
[Java]Array와 List  (0) 2018.08.23
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.