티스토리 뷰

String 선언하는 2가지 방법

1. heap 메모리에 인스턴스로 생성되는 경우

2. 리터럴 영역으로 상수 풀(constant pool)에 있는 주소를 참조하는 방법 

 

heap 메모리는 생성될 때마다 다른 주소 값을 가지지만, 상수 풀의 문자열은 모두 같은 주소 값을 가진다.

 

String 을 연결하면 기존의 String에 연결되는 것이 아닌 새로운 문자열이 생성된다.

=> 리터럴 방식으로 한 번 생성된 String 은 불변이므로 계속 새로 생겨진다.

 

 

 

예시)

 

예시2)

 

StringBuffer 클래스

 

 

String 클래스의 잦은 변화가 있을 때 메모리 낭비가 발생할 수 있다.

이를 대체하는 방법으로는 StringBuilder, StringBuffer 활용할 수 있다.

 

  • 내부적으로 가변적인 char[]를 멤버 변수로 가짐
  • 문자열을 여러번 연결하거나 변경할 때 사용하면 유용함
  • 새로운 인스턴스를 생성하지 않고 char[] 를 변경함
  • StringBuffer는 멀티 쓰레드 프로그래밍에서 동기화(synchronization)을 보장
  • 단인 쓰레드 프로그램에서는 StringBuilder 사용을 권장
  • toString() 메서드로 String반환

 

예시) 

text block 

문자열을 """ """ 사이에 이어서 만들 수 있다.

예시)

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함