String 클래스
: 문자열을 표현하는 자바에서 가장 많이 사용하는 클래스
자바 인스턴스 생성 방법
1. new 연산자를 이용하지 않고 인스턴스를 만드는 경우

String str1 = "Hello";
String str2 = "Hello";
String str3 = "Class";
System.out.println(str1 == str2);
// 서로 같은 인스턴스를 참조하므로
// true
- “Hello World” 라는 문자열이 메모리 중에서 상수가 저장되는 영역(String constant pool)에 저장된다.
- 상수란? 변하지 않는 값 을 의미
- String str2 = “Hello World”; 이 실행될 때, hello라는 문자열 상수가 이미 만들어져 있으므로 str1이 참조하는 인스턴스를 str2도 참조한다.
2. new 연산자를 이용해서 인스턴스를 만드는 경우

String str1 = new String("John");
String str2 = new String("Deo");
String str3 = new String("John");
System.out.println(str1 == str3);
// 서로 다른 인스턴스를 참조하므로
// false
- new 연산자를 이용하여 인스턴스를 만들면 인스턴스는 무조건 새롭게 만들어진다. → str1과 str3는 내용이 같지만 서로 다른 인스턴스를 참조한다.
💡 정리
1. 메모리를 아끼기 위해선 String은 new를 사용하지 않고 사용하는 것이 좋다.
2. String은 불변 클래스로, 인스턴스가 될 때 가지고 있던 값을 나중에 수정할 수 없다.
3. String이 가지고 있는 메소드 중 String을 반환하는 메소드는 모두 새로운 String을 생성해서 반환한다.
reference
https://www.geeksforgeeks.org/string-constant-pool-in-java/
'[Java] 자바' 카테고리의 다른 글
| [JAVA] null과 NullPointerException (1) | 2024.06.27 |
|---|---|
| [JAVA] 클래스, 객체, 인스턴스 (0) | 2024.06.25 |
| [JAVA][자바] 객체지향 프로그래밍 (0) | 2022.12.01 |
| [자바][JAVA] 배열(Array)과 리스트(List)에 대하여 (1) | 2022.12.01 |
| [JAVA]프로그래머스 - 분수의 덧셈 (0) | 2022.10.12 |