String 클래스

SungMin·2026년 5월 23일

자바 심화 정리

목록 보기
10/34

자바에서 대표적으로 문자를 다룰 수 있는 타입은 char, String이 있다.

package lang.string;

public class CharArrayMain {
    public static void main(String[] args) {
        char[] charArray = new char[]{'h', 'e', 'l', 'l', 'o'};
        System.out.println(charArray);

        String str = "hello";
        System.out.println(str);
    }
}

기본형인 char는 문자 하나를 다룰 때 사용한다.
하지만 char[]처럼 직접 다루는 방법은 매우 불편하기 때문에 자바는 문자열을 편리하게 다룰 수 있는 String을 제공하고 있다.


package lang.string;

public class StringBaiscMain {
    public static void main(String[] args) {
        String str1 = "hello";
        String str2 = new String("hello");

        System.out.println("str1 = " + str1);
        System.out.println("str2 = " + str2);
    }
}
  • 쌍따옴표: "hello"
  • 객체 생성: new String("hello");

String은 클래스다.
따라서 변수에 String 인스턴스가 들어갈 수 있다.

하지만 문자열은 매우 자주 사용한다.
그래서 편의상 쌍따옴표로 문자열을 감싸면 자바는 문자열 리터럴을 String 객체로 처리한다.


String 클래스 구조

public final class String {
	//문자열 보관
	private final char[] value;// 자바 9 이전 private final byte[] value;// 자바 9 이후
	//여러 메서드
	public String concat(String str) {...} public int length() {...}
...
}

String도 클래스이기 때문에 속성과 메서드로 구성이 되어 있다.

private final char[] value;

String 클래스는 개발자가 직접 다루기 힘든 char[]을 내부에 감추고 String 클래스를 사용하는 개발자가 편리하게 문자열을 다룰 수 있도록 다양한 기능을 제공한다.
기능은 방대하므로 필요한 기능이 있으면 찾아보는 것이 좋다.


[정리]

  • char는 문자 하나를 저장한다.
  • String은 문자열을 편리하게 다루기 위한 클래스다.
  • String은 내부적으로 문자 배열을 사용한다.
  • 문자열 리터럴은 자바가 String 객체로 처리한다.
  • String은 불변 객체다.
profile
오늘도 한 걸음씩 나아가

0개의 댓글