String Class
- 문자열을 다루기 위한 클래스
- String 클래스 =
데이터(char[])
+ 메서드(문자열 관련)
로 이루어져있다.
public final class String implements java.io.Serializable, Comparable<String>, CharSequence {
private final char value[];
}
- 내용을 변경할 수 없는 불변(immutable) 클래스이다.
- 따라서 덧셈 연산자(+)를 이용한 문자열 결합은 성능이 떨어진다.
- 문자열의 결합이나 변경이 잦다면, 내용 변경이 용이한
StringBuilder
나 StringBuffer
를 사용하자.
문자열의 비교
- String을 new 연산자를 이용하여 만드는 것과 그냥 리터럴 값을 할당하는 것의 차이
- new 연산자를 사용하면
String Constant Pool
에 무조건 새로운 객체를 생성하게 된다.
- 문자열 리터럴은 프로그램 실행시 자동으로 생성된다.(
String Constant Pool
)
- 이 때 같은 내용의 문자열 리터럴은 하나만 만들어진다.
- (불변객체이므로 내용이 바뀔 위험이 없기 때문에 하나만 만들어져도 상관 없다)
빈 문자열("", empty string)
- 내용이 없는 문자열
- 크기가 0인 char형 배열을 저장하는 문자열
String str = "";
- 참고 : 크기가 0인 배열을 생성하는 것은 어느 타입이나 가능하다.
Reference