String, substring

남기용·2021년 12월 16일

자바

목록 보기
8/9

substring()

자바 String class에는 substring이라는 메소드가 있습니다.

이전 포스팅에서 string은 immutable하다는 이야기를 하면서 문자열 + 연산에 대해 이야기 했습니다.

이번에는 부분 문자열 이야기입니다.

String은 불변하기 때문에 아래와 같은 코드를 실행하면

String str = "abcd";
str = str.substring(0,2);

str에는 ab가 저장됩니다.

하지만 자바 내부적으로는 어떻게 될까?

String은 객체 타입이기 때문에 힙 영역에 할당 됩니다.

substring() 메소드를 호출하고 나면 아래와 힙 영역이 변합니다.

ab라는 새로운 String 객체를 생성하고 str이 새로운 객체를 가리키게 됩니다. 그리고 기존의 abcd는 힙 공간에 남아있다가 gc에 의해 객체가 소멸될 것입니다.

자바의 String은 객체 타입이고 immutable하기 때문에 문자열을 이용해 연산을 할 때 주의해야 합니다.

profile
개인용 공부한 것을 정리하는 블로그입니다.

0개의 댓글