목차

  1. String 클래스란? (객체 선언 방법) 
    • String 객체 선언 방법 (리터럴 상수와 new 생성자)
  2. Immutable 클래스
    • String 객체는 내용을 수정할 수 없는 Immutable 클래스

 

 

 

1. String 클래스란? (객체 선언 방법)

  • 자주 쓰는 기본형인 int, double 과 다르게 대문자로 시작되는 클래스 타입의 참조형이다

 

 

1) String 객체 선언 방법

 

    1-1) 리터럴 상수

    String test = "테스트";

 

    1-2) new 생성자

    String test = new String("테스트"); 

 

 

 

두 방법 모두 실행 후 결과는 같으나 내부 메모리 영역에서 차이가 있다

 

t1 과 t2 모두 "테스트"라는 값을 저장한, 0x000 이라는 인스턴스 값을 가진 메모리 공간을 생성하여 참조했기에 두 비교 모두 true 지만,

t3 와 t4 는 "테스트"라는 값을 저장한 각기 다른 인스턴스 값을 가진 메모리 공간을 생성하여 참조했기에 비교연산자 (==) 는 false 이다

 

 

 

 

2. Immutable 클래스

  • 객체 선언 후 수정은 불가능하나 재할당은 가능하다

 

 

String 클래스의 특징은 String 객체를 생성하고 나면 그 객체는 수정이 불가능하다는 것이다.

하기 예시 처럼, t1 객체를 수정하면 console 창에는 객체가 수정된 것 처럼 보이지만 실제로는 또 다른 메모리 공간이 생성되어 그 인스턴스 값을 참조하는 것이다.

그렇게 되면 기존에 쓰던 "테스트" 값을 저장해둔 메모리 공간은 사용되지 않고 남아있기 때문에 효율이 감소하게 된다.

이렇듯 객체 수정은 불가능하나 재할당은 가능하다는 것이 immutable 클래스의 특징이다.

 

 

 

 

    

 

 

+ Recent posts