- Java.lang 패키지에 포함되어 있다.
- 별도의 import없이 사용 가능
- Immutable(불변이다.) -> 변경이 불가능하다.
변경을 하기 위해서는 새로 생성하여야 한다. - 생성 방식:
- 배열처럼 접근하여 수정이 불가능 하다.
- 대신 charAt으로 해당 인덱스의 값을 받아 올 수는 있다. 수정하려면 새로 인스턴스 생성해야한다.
- 새 String을 만들어 수정하는 방법 4가지
- StringBuilder를 쓰는 방법 추천
- String 타입은 == 비교가 되지 않는다. new를 이용해 만든 스트링은 근본적으로 다른 인스턴스이기 때문이다.
- Object.equals 또는 String.equals를 사용하여야 한다.
- 리터럴방식의 경우에는 같은 곳을 가르킨다. 하지만 new 방식 생성은 독립된 하나의 데이터를 만들기 때문에 근본적으로 같은 값이 아니다.
- 리터럴방식은 같은 곳을 가르키기에 ==비교가 가능하다. 하지만 같은 곳을 가르키기에 변경이 되면 문제가 발생한다. 이 이유가 스트링은 불변자료형인 이유 중 하나 이다.
- cf)스트링이 불변인 이유(보안 , 캐싱 , 복사가 필요없는 빠른 재사용성 , 동기화 때문)(https://velog.io/@ur2e/String은-왜-그리고-어떻게-불변-객체인가요-String-Constant-Pool)
'Problem Solving > 자바 문법' 카테고리의 다른 글
Array 출력방법 (0) | 2024.01.29 |
---|---|
자바 출력하기 BufferedWriter (1) | 2024.01.29 |
시간복잡도 (0) | 2024.01.29 |
문자열 포맷 (0) | 2024.01.24 |
자바 입력받기 (1) | 2024.01.24 |