본문 바로가기
Language/Java

String 클래스

by 태윤2 2020. 6. 23.

문자열을 관리하는 클래스

내부적으로 char[] 타입으로 각각의 문자들을 관리

배열의 인덱스와 동일한 값을 각각의 문자열에

final 클래스로 저장 / 상속 불가능한 클래스

생성자 사용 및 리터럴 할당 방법으로 문자열 저장 생성 가능

한 번 생성된 문자열은 불변이므로,

문자열을 수정하면 수정된 내용을 갖는 새로운 문자열을 생성하여 다른 공간(주소값)에 저장

=> 문자열 수정이 빈번한 경우 StringBuffer 나 StringBuilder 클래스가 적합

String 클래스에 각종 메서드를 제공하므로, 효율적인 문자열 처리 가능

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 문자열 생성 방법
1. 리터럴을 직접 할당하는 방법
동일한 문자열 존재 여부를 Constant Pool(상수 풀)에서 검색하여
존재하지 않으면 새로 생성, 존재할 경우 주소값 공유
따라서, 동일한 문자열이 존재할 경우 저장 공간의 낭비가 없음
 
String s1 = "Hello"// 기존에 존재하지 않는 문자열이므로 상수 풀에 새 공간 할당받음
String s2 = "Hello"// s1 이 가리키는 상수 풀과 동일한 위치의 주소값을 전달받음
 
s1, s2 는 주소값도 문자열도 
 
2. new 연산자로 String 객체를 생성하여 할당하는 방법
동일한 문자열 존재 여부와 관계없이 무조건 힙 공간에 문자열 생성
 
String s3 = new String("Hello"
String s4 = new String("Hello")
 
s3, s4 는 주소값이 다르다, 문자열(데이터는 같다)
cs