자바에서는 String 이라는 이름의 클래스를 정의하여 제공하고 있으며 이 클래스의 목적은 문자열 표현에 있다.
문자열 표현을 위한 String 인스턴스의 생성 방법은 다음과 같이 일반적인 인스턴스의 생성 방법과 같다.
String str = new String("ABC");
이렇게 인스턴스가 생성되면 str 이 참조하는 String 인스턴스의 내부에는 문자열 "ABC" 가 담기게 된다.
그리고 다음과 같은 방법으로도 생성이 가능하며 이는 보다 보편적인 방법이다.
String str = "ABC";
그리고 String 클래스의 문자열 길이를 반환하는 메소드가 있는데 사용은 다음과 같이 한다.
여기서 println 이 문자열도 출력하고 숫자도 출력하는 이유는
void println(int a)
void println(string b)
와 같이 오버로딩 되어있고 매개변수의 형에 따라 해당 메소드를 호출하기 때문이다.
또한 위의 코드와 같이 따옴표로 묶은 문자열 자체를 대상으로 인스턴스가 저절로 생성되기도 한다.
그리고
String str1 = new String("ABC");
String str2 = new String("ABC");
는 서로 다른 인스턴스를 참조하는 것을 알고 있다.
그러나
String str1 = "ABC";
String str2 = "ABC";
는 동일한 인스턴스를 참조하는 것을 알아두어야 한다.
이는 Sting 인스턴스의 다음 특성때문이다.
- String 인스턴스는 Immutable(변경할 수 없는) 인스턴스이다.
String 인스턴스는 생성되면 소멸될 때 까지 바뀌지 않고 이를 이용하여 컴파일러는 더 효율적인 처리를 위해 동일한 문자열의 String 인스턴스를 공유하게 된다.
'JAVA' 카테고리의 다른 글
[JAVA] 배열 (Array) (자바 독학하기15) (0) | 2021.06.30 |
---|---|
[JAVA] 콘솔 입·출력 (자바 독학하기14) (0) | 2021.06.28 |
[JAVA] 메소드 오버로딩 (Method Overloading) (자바 독학하기12) (0) | 2021.06.26 |
[JAVA] 클래스 변수와 클래스 메소드(static) (자바 독학하기11) (0) | 2021.06.24 |
[JAVA] 접근 수준 지시자(Acess-level-Modifiers) (자바 독학하기10) (0) | 2021.06.22 |