본문 바로가기

java/문자열(String)

String 타입의 변수 선언과 할당

// 문자열 리터럴을 String 타입의 변수 name에 할당하는 방법
String name1 = "Kim Coding";

// String 클래스의 인스턴스를 생성하는 방법
String name2 = new String("Kim Coding");

문자열만 new를안써도 동작한다.

참조타입은 모두 대문자로 시작한다.

기본 타입은 null값을 넣기위해 대문자로 쓰기도 한다.

 

기본적으로 String 타입은 큰따옴표("")로 감싸진 문자열을 의미한다.(2단어 이상)


1. 문자열 리터럴과 객체 생성 방식

  • 문자열 리터럴로 할당
    문자열 리터럴은 문자열을 String 타입의 변수에 직접 할당하는 방식이다.
    이때 동일한 문자열 리터럴은 String Pool에 저장되어 재사용된다.
     
     
  • new 키워드로 객체 생성
    new 키워드를 사용하면 Heap 메모리에 새로운 String 객체가 생성된다.
    같은 문자열이라도 매번 다른 객체로 취급되며, 메모리 효율은 떨어질 수 있다.
     
     

차이점
리터럴은 메모리 절약을 위해 String Pool에서 재사용되지만, new를 사용하면 매번 새로운 객체를 생성한다.


2. 참조 타입의 특징

  • 자바에서 참조 타입(Reference Type)은 대문자로 시작한다.
    이는 클래스 기반의 타입을 나타내며, String 역시 자바에서 제공하는 클래스다. 
     
  • 참조 타입은 null 값을 가질 수 있다.
    예를 들어, 참조 타입 변수에 아무 값도 할당하지 않은 상태로 둘 수 있다.

 

 

3. 기본 타입과 래퍼 클래스

  • 기본 타입(Primitive Type)은 소문자로 시작하며, null 값을 가질 수 없다.
    이를 보완하기 위해 자바는 래퍼 클래스(Wrapper Class)를 제공한다.기본 타입래퍼 클래스
    int Integer
    double Double
    char Character
    boolean Boolean
     
     


4. 문자열 비교

  • 문자열 비교 시 ==는 객체의 주소값을 비교하며, 실제 값 비교에는 equals() 메서드를 사용해야 한다.

5. 불변성(Immutability)

  • String은 불변(Immutable)이다.
    한 번 생성된 문자열은 변경할 수 없으며, 수정이 필요할 경우 새로운 객체를 생성한다.

 

'java > 문자열(String)' 카테고리의 다른 글

String 클래스의 메서드  (0) 2024.04.03