스트링String 클래스
String 객체는 문자열을 다루는데 가장 많이 사용하는 클래스이다. 일단 String 객체가 하나 생성되면, 그 값은 길어지거나 줄어들 수 없으며, 그 문자들은 수정 할 수 없다. 그래서 String 객체는 변경불능immutable하다고 한다. 하지만 String 클래스의 함수(Method)를 사용하여 String 결과를 수정한 결과를 새로운 String 객체로 반환할 수 있다.
String str = "dean";
str = str + "92"; //"dean92"라는 새로운 문자열이 str에 저장되었다.
System.out.println(str); //"dean92" 출력됨
문자열 변수 str의 내용이 변경된 것 처럼 보이지만 문자열은 변경될 수 없으므로 새로운 내용의 문자열이 생성된 것이다.
문자열을 변경하려면 StringBuffer 클래스를 사용하면 된다.
스트링 클래스의 인스턴스 생성
String str1 = "String Instance";
String str2 = "My String";
두 개의 Strung 인스턴스가 생성되고 참조변수 str1과 str2로 참조한다.
System.out.println("Hello DEAN!");
System.out.println("Beautiful!");
Println 메소드의 매개변수형이 String이기 때문에 이러한 문장 구성이 가능하다.
public class StringInstance {
public static void main(String[] args) {
java.lang.String str = "My name is Dean";
int strLength1 = str.length();
System.out.println("strLength1 : " + strLength1);
int strLength2 = "한글의 길이".length();
System.out.println("strLength2 : " + strLength2);
}
}
문자열의 선언은 인스턴스의 생성으로 이어짐을 볼 수 있다.
변경불능Immutable
public class Immutable {
public static void main(String[] args) {
String str1 = "My String";
String str2 = "My String";
String str3 = "Your String";
if(str1==str2)
System.out.println("동일 인스턴스 참조");
else
System.out.println("다른 인스턴스 참조");
}
}
String 인스턴스의 문자열 변경이 불가능하기 때문에 둘 이상의 참조변수가 동시에 참조를 해도 에러가 발생하지 않는다.
스트링String 클래스의 메소드
String 클래스는 많은 문자열 관련 메서드를 포함하고 있다. 예비 개발자라면 한글로된 교재에서 메소드의 기능을 찾는 습관은 버려야 하며 API 문서를 보는 것에 익숙해 져야 한다. API 문서를 볼 줄 모르는 개발자는 있을 수 없고 API 문서를 참조하지 않고 개발하는 개발자도 있을 수 없으므로 API문서와 친해져야 한다.