CODEDRAGON ㆍDevelopment/Java
String 클래스
· 문자열 객체
· String 인스턴스에 저장된 문자열의 내용은 변경이 불가능합니다. 이는 동일한 문자열의 인스턴스를 하나만 생성하고 이를 공유해서 사용하기 위해서입니다.
· + 연산자를 이용하여 연결된 새로운 문자열 객체를 생성합니다.
· JAVA는 큰 따옴표(")로 묶여서 표현되는 문자열을 모두 인스턴스화 합니다.
· 문자열은 String 이라는 이름의 클래스로 표현됩니다
· java.lang 패키지에 포함되어 있으며 String 클래스에는 문자열과 관련된 작업을 할 때 유용하게 사용할 수 있는 다양한 메소드가 포함되어 있습니다.
C vs Java 문자열
C언어에서는 문자열을 char형 배열로 표현하지만, 자바에서는 문자열을 위한 String이라는 클래스를 별도로 제공합니다.
C |
Java |
char[] |
String |
문자열 수정 불가능(불변적 특징)
· 문자열 가공시(변경시) 기존 문자열의 변경없이 새로운 문자열을 생성합니다.
· 문자열을 가공해야 되는 경우 문자열로 처리하는 것은 비효율적입니다. 아래와 같이 쓰레기 객체를 양산하게 되어 메모리 효율을 떨어트리게 됩니다.
· String의 불변적 특성으로 문자 가공시 String을 쓰지 않고 StringBuffer클래스를 사용하여 문자열을 수정/변경 작업을 하게 됩니다.
· StringBuffer로 수정/변경을 완료한 후 최종적인 문자열을 String으로 저장합니다.
String str = "봄"; |
//"봄" 생성 |
str += str + "여름"; |
//"봄여름"이 새로 생기고 "봄"은 쓰레기 객체가 됩니다 |
str += str + "가을"; |
//"봄여름가을"이 새로 생기고 "봄여름"은 쓰레기 객체가 됩니다. |
str += str + "겨울"; |
//"봄여름가을겨울"이 새로 생기고 "봄여름가을"은 쓰레기 객체가 됩니다. |
문자열 처리의 편의성 해결
· 문자열 사용시 인스턴스의 생성 수를 줄이기 위해
· 문자열 정의 후 변경이 불가능하게하여
· 동일한 문자열은 참조값을 통해 동일한 인스턴스를 공유할 수 있게 하였습니다.
String str1 = "계절"; //인스턴스 생성 String str2 = "계절"; //str1의 인스턴스의 참조값을 str2에 저장
|
· str1과 str2에는 동일한 "계절"에 대한 참조값으로 동일한 인스턴스를 참조하게 됩니다. · 그래서 변경불가합니다, 하나의 인스턴스를 두개의 참조변수가 참조하는 경우 문자열 변경이 불가능함으로 동일한 결과를 출력할 수 있게 됩니다. |
'Development > Java' 카테고리의 다른 글
StringBuffer 클래스 - StringBuffer 클래스와 StringBuilder 클래스의 공통점, StringBuffer 클래스와 StringBuilder 클래스의 차이점, StringBuffer 클래스 주요 생성자 (0) | 2017.10.10 |
---|---|
String 클래스의 주요 메소드 (0) | 2017.10.10 |
Enum 클래스의 주요메소드 (0) | 2017.09.29 |
for-each문(확장 for문) , for-each문 형식, for-each문의 인스턴스 배열 (0) | 2017.09.29 |
열거체(enumeration type), 자바의 열거체 장점, Enum 클래스, 열거체 정의, 열거체 사용 (0) | 2017.09.29 |