== 와 equals()

Study/JAVA 2012. 8. 27. 11:35

== 연산자와 equals() 메소드의 차이점

== 연산자는 두 변수의 값이 같은가를 물어보는데 반해 equals() 메소드는 객체의 내용이 같은가를 물어본다

== 연산자는 기본 자료형이나 레퍼런스에 사용될 수 있지만, equals() 메소드는 레퍼런스 타입에서만 사용할 수 있다

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
public class Equal
{
    public static void main(String args[])
    {
        String a = new String("abc");
        String b = "abc";
        String c = b;
        String d = a;
         
        StringBuffer e = new StringBuffer("abc");
        StringBuffer g = e;
         
        if(a==b)
        {
            System.out.println("a==b");
        }
    //  if(a==e)
    //  {
    //      System.out.println("a==e");
    //  }
         
        if(c==b)
        {
            System.out.println("c==b");
        }
         
        if(b.equals(a))
        {
            System.out.println("b.equals(a)");
        }
         
        if(b.equals(e))
        {
            System.out.println("b.equals(e)");
        }
         
    }
}

 

 

변수 a,b,c,d 는 String 타입

e.g 는 StringBuffer 타입

- String 타입과 StringBuffer 타입은 서로 다른 레퍼런스 타입이기 때문에 == 연산자를 이용해서 같은지 여부를 알아볼수 없다

이러한 경우에 == 연산자를 사용하면 컴파일 에러가 발생한다

 

 

'Study > JAVA' 카테고리의 다른 글

JDBC 관련 클래스  (0) 2012.08.27
JDBC  (0) 2012.08.27
java.lang.NullPointerException 에러  (0) 2012.08.17
annotation  (1) 2012.08.03
IoC(Inversion of Control)  (0) 2012.08.03
Posted by 코딩하는 야구쟁이
,