Java

[Java Programming] 7.3 String Concatenation, String Buffer

코딩펭귄 2024. 1. 25. 15:41

String은 Java 내장 클래스! -> 따로 import 작성하지 않아도 사용이 가능함(Integer 처럼 java.lang패키지에 있는 클래스이기 때문)

 

String Concatenation

- 문자열과 문자열을 연결하려면 + 연산자 사용

- 문자열 연결의 특징 : 문자열 + 모든 타입의 결과는 문자열이 됨

- 대량문자열 연결하기 : 자바15 이상 -> """ 문자열 """ 처럼 따옴표 3개 쓰는 멀티라인 문자열 사용 

- 문자열은 Refernece Type이므로 항상 메모리를 참조함

 

Reference Type은 두가지 타입으로 구분됨

Immutable - ex)String : 메모리내의 값이 절대 변경될수없음

Mutable : 메모리 내의 값이 자유롭게 변경될 수 있음

 

p327 내용추가

- String의 값을 변경하려고 시도하면, 원래 주소 값이 끊어지고, 새로운 메모리 공간을 참조하게 됨

 

- 문자열연결은 문자열 내의 값이 많을 경우, 새로운 메모리공간을 확보하고 값을할당하므로 -> 큰비용(CPU, Memory)이 들기때문에 추천하지 않는 방법 -> 대량의 문자열을 연결할때 사용하는것 : StringBuffer 사용!!

 

 

String Buffer

- 문자열을 이어붙이기 위함

- StringBuffer 인스턴스의 append()메소드를 이용해 문자열을 이어붙임

- StringBuffertoString() 메소드를 이용해 하나의 문자열 인스턴스로 변환

- 메모리 참조를 이용한 문자열 연결도 가능 (String Buffer 또한 Reference Type이기 때문)

StringBuffer sb = new StringBuffer();

sb.append("I AM\n");
sb.append("UNFORGIVEN\n");
sb.append("MONEY\n");

String str = sb.toString(); // 버퍼에 쌓여있던 문자열들이 str 메모리 하나로 들어오게 됨
System.out.println(str);
Escape Character
\n 줄바꿈
\t tab(들여쓰기)
\" 문자열안에 "따옴표 추가
\\ | 출력할때 사용