- [Java] 53. String, StringBuffer 클래스2024년 04월 26일
- Song hyun
- 작성자
- 2024.04.26.:39
728x90반응형[Java] 53. String, StringBuffer 클래스
1. String 클래스란?
2. StringBuffer 클래스란?
3. text block(java13) 사용하기
1. String 클래스란?
-String 클래스는 (1) 힙 메모리에 인스턴스로 생성하거나, (2) 상수 풀(constant pool)에 있는 주소를 참조하는 방법이 있다.
-힙 메모리는 생성될 때마다 다른 주소 값을 가지지만, 상수 풀의 문자열은 모두 같은 주소 값을 가지고 있다.
*상수 풀에 올라간 String 값은 먼저 존재하는지 확인부터 하게 된다.
만약 같은 문자열이 존재한다면, 새로 생성하지 않고, 다시 재사용한다.**==는 객체의 주소값을 비교하는 연산자이다.
***equals는 문자열 값을 비교하는 클래스이다.
=>문자열 비교는 논리적인 판단으로, 같은지 다른지를 true/false 값을 반환하게 된다.
2. StringBuffer 클래스란?
String 클래스에 잦은 변화가 있을 때 메모리가 낭비된다.
이를 대처하기 위해 StringBuilder/StringBuffer가 자주 활용된다.
(1) StringBuffer 클래스: java.lang 패키지에 존재하는 클래스. 문자열을 계속해서 더하거나, 변경시킬 수 있다.
-내부적으로 가변적인 char[]를 멤버 변수로 가진다.
-문자열을 여러번 연결하거나, 변경할 때 사용하면 유용하다.
-새로운 인스턴스를 생성하지 않고, 내부의 멤버변수 char[]를 변경한다.
-멀티 쓰레드 프로그래밍에서(백엔드 서버) 동기화(Synchronization)을 보장한다.
-단인 쓰레드 프로그램에서는 StringBuilder 사용을 권장한다.
-toString() 메서드를 사용해, String을 반환할 수 있다.
3. text block 사용하기
text block이란?: String형 변수 여러개를 더하지 않아도, 긴 문장을 출력할 수 있게 도와주는 기능이다. """ """(쌍따옴표 각각 3개)로 표기한다.
-HTML,json 문자열을 만드는 데 유용하게 사용할 수 있다.
-json (JavaScript Object Notation): 자바스크립트 객체 문법
package useful; public class StringTextBlock { public static void main(String[] args) { // """ 찍고 한 줄 내리기 String strBlock=""" This is a Text Block Test."""; String jSonText=""" { "userId": 10, "id": 195, "title": "rerum ex veniam mollitia voluptatibus pariatur", "completed": true }, """; // html, json 문자열을 만드는 데 유용하게 사용할 수 있다. // json(JavaScript Object Notation): 자바스크립트 객체 문법 } }
728x90반응형'Java > 기본 개념 및 클래스' 카테고리의 다른 글
[Java] 57. 인터페이스 활용: 스타크래프트 소스 코드 수정하기 (0) 2024.04.26 [Java] 54. 인터페이스와 추상 클래스의 활용 (0) 2024.04.26 [Java] 52. Object 클래스 (0) 2024.04.25 [Java] 48. 인터페이스와 추상화 (0) 2024.04.25 [Java] 47. 추상 클래스 활용: 클래스 구현하기 (0) 2024.04.24 다음글이전글이전 글이 없습니다.댓글