Book

[코딩을 지탱하는 기술] 한 문자가 16비트인 JAVA 문자열 [수정중]

윤랩용 2022. 3. 27. 00:29

우선 java의 String 에대해서 알아보자

JAVA로 개발하다보면 제일많이 쓰이는 클래스가 String  클래스이다.

 

String 이란?

String 클래스는 문자열을 다루는 클래스미여 불변하다는 특징이있다.

String 객체에 값이 초기에 할당되면 그 값은 변경되지 않는다.

 

 

String 객체 생성방법

@DisplayName("String 객체 생성방법")
    @Test
    void test1(){
        String a1 = "a";
        String a2 = new String("a");
        System.out.println("a1 = a2 : " + (a1 == a2));
    }

리터럴로 생성될경우 String 객체는 String constant pool 이란 공간에 저장이된다.

new 연산자로 생성될 경우 Heap 영역에 저장된다.

각변수 a1, a2 는 Stack 메모리에 올라가며 String constant pool 과 Heap 영역에 생성된 객체 메모리 주소값을 참조하게된다.

 

즉 변수 a1와 a2는 서로 참조하는곳이 다르기때문에 false가 나오게 된다.