String 클래스
- 문자열을 다루기 위한 클래스
- String 클래스 = 데이터(char[]) + 메서드(문자열 관련)
- 내용을 변경할 수 없는 불변클래스
String a = "a";
String b = "b";
a = a + b;
- 덧셈 연산자를 이용한 문자열 결합은 성능이 떨어짐..
- 문자열의 결합이나 변경이 잦다면, 내용을 변경가능한 StringBuffer를 사용
문자열의 비교
- String str = "abc";와 String str = new String("abc");의 비교
- 문자열리터럴은 같은 값을 가르킴 (새로운 문자열 X)
- new 연산자를 이용해서 객체를 생성하면 내용이 같아도 항상 새로운 문자열이 만들어짐. 즉, 같은 값이지만 주소가 다름 (새로운 문자열 O)
String str1 = "abc";
String str2 = "abc";
String str3 = new String("abc");
String str4 = new String("abc");
str1 == str2 ? true
str3 == str4 ? false
str1.equals(str2) ? true
str3.equals(str4) ? true
문자열 리터럴
- 프로그램 실행 시 자동으로 생성
- 같은 내용의 문자열 리터럴은 하나만 만들어진다. (위 예시에서 str1, str2에서 "abc";를 생성했을 때 "abc"는 하나만 만들어짐)
빈 문자열 ("", empty String)
- 내용이 없는 문자열. 크기가 0인 char형 배열을 저장하는 문자열
String str = "";
- 크기가 0인 배열을 생성하는 것은 어느 타입이나 가능
char[] chArr = new char[0];
int[] iArr = {};
- 문자(char)와 문자열(String)의 초기화
char c = ' ';
String s = "";
String s = new String("");