// 문자열 리터럴을 String 타입의 변수 name에 할당하는 방법
String name1 = "Kim Coding";
// String 클래스의 인스턴스를 생성하는 방법
String name2 = new String("Kim Coding");
문자열만 new를안써도 동작한다.
참조타입은 모두 대문자로 시작한다.
기본 타입은 null값을 넣기위해 대문자로 쓰기도 한다.
기본적으로 String 타입은 큰따옴표("")로 감싸진 문자열을 의미한다.(2단어 이상)
1. 문자열 리터럴과 객체 생성 방식
- 문자열 리터럴로 할당
문자열 리터럴은 문자열을 String 타입의 변수에 직접 할당하는 방식이다.
이때 동일한 문자열 리터럴은 String Pool에 저장되어 재사용된다.
- new 키워드로 객체 생성
new 키워드를 사용하면 Heap 메모리에 새로운 String 객체가 생성된다.
같은 문자열이라도 매번 다른 객체로 취급되며, 메모리 효율은 떨어질 수 있다.
차이점
리터럴은 메모리 절약을 위해 String Pool에서 재사용되지만, new를 사용하면 매번 새로운 객체를 생성한다.
2. 참조 타입의 특징
- 자바에서 참조 타입(Reference Type)은 대문자로 시작한다.
이는 클래스 기반의 타입을 나타내며, String 역시 자바에서 제공하는 클래스다.
- 참조 타입은 null 값을 가질 수 있다.
예를 들어, 참조 타입 변수에 아무 값도 할당하지 않은 상태로 둘 수 있다.

3. 기본 타입과 래퍼 클래스
- 기본 타입(Primitive Type)은 소문자로 시작하며, null 값을 가질 수 없다.
이를 보완하기 위해 자바는 래퍼 클래스(Wrapper Class)를 제공한다.기본 타입래퍼 클래스int Integer double Double char Character boolean Boolean

4. 문자열 비교
- 문자열 비교 시 ==는 객체의 주소값을 비교하며, 실제 값 비교에는 equals() 메서드를 사용해야 한다.

5. 불변성(Immutability)
- String은 불변(Immutable)이다.
한 번 생성된 문자열은 변경할 수 없으며, 수정이 필요할 경우 새로운 객체를 생성한다.

'java > 문자열(String)' 카테고리의 다른 글
| String 클래스의 메서드 (0) | 2024.04.03 |
|---|