컴퓨터활용/java interview

String Compare equals Vs ==

멜번초이 2013. 1. 6. 11:21
반응형

질문 : 다음 코드를 수행하면 결과는? 

1
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

public static void main(String[] args) {

    String s1 = new String("Hello");

        String s2 = new String("Hello");

        

        if(s1 == s2) {

          System.out.println("s1 and s2 are ==");

        } else if (s1.equals(s2)) {

          System.out.println("s1 and s2 are equals()");

        }

              

        String s3 = "Hello";

        String s4 = "Hello";

        

        if(s3 == s4) {

          System.out.println("s3 and s4 are ==");

        } else if (s3.equals(s4)) {

          System.out.println("s3 and s4 are equals()");

        }

  }





결과 


1

2

s1 and s2 are equals()

s3 and s4 are ==


해설


new() 생성자로 객체를 만들면 메모리를  heap  영역에 각각 할당하게 되지만   String s3 = "Hello";  처럼 했을 때는 String Pool 에 값을 임시 저장하고 그 값을 스트링 변수간에 공유한다.  불필요하게 오브젝트 수가 많아지는 것을 방지하기 위함이다.

반응형

'컴퓨터활용 > java interview' 카테고리의 다른 글

method overloading Vs overriding  (0) 2013.01.06