String 관련 Class
String 관련 Class
String 클래스
선언
String str = new String(“abc”);
- 힙 메모리에 생성된다.
String str2 = “abc”;
- 상수 pool의 abc라는 String에 address가 생성된다.
- 두 개의 인스턴스는 다르다.
- 힙 메모리는 생성될 때마다 다른 주소값을 가지지만, 상수 pool의 문자열은 모두 같은 주소를 가진다.
메모리
- 한번 생성된 String은 immutable(불변)이다.
- String을 연결하면 기존의 String에 연결되는 것이 아닌 새로운 문자열을 위한 메모리가 생성된다.
예제 코드 확인하기
1 | String java = new String(“java”); |
StringBuilder, StringBuffer
위 메모리 낭비를 해결하기 위해
StringBuilder
,StringBuffer
를 활용한다.
- 내부적으로 가변적인 char[]를 멤버 변수를 가진다.
- 새로운 인스턴스를 생성하지 않고, char[]를 변경한다.
- 문자열을 연결, 변경할 때 유용하게 사용할 수 있다.
차이점
- StringBuilder : 단일 쓰레드에서 사용한다.
- StringBuffer : 멀티 쓰레드 프로그래밍에서 동기화를 보장한다.
- 두 개 이상의 쓰레드가 같은 메모리에 접근할 때 순서를 가지게 된다.
예제 코드 확인하기
1 | package ch03; |
Text Block 사용하기
- Java 13 이상부터 제공한다.
- 하나의 string을 연결해서 사용할 때 사용한다.
- 서블릿 등 서버사이드에서 클라이언트 쪽으로 데이터를 html, json 프로토콜로 요청할 때 유용하다.
“”” “””
안에 string을 넣어 사용한다.예제 코드 확인하기
1 | package ch03; |
String 관련 Class
You need to set
install_url
to use ShareThis. Please set it in _config.yml
.