Immutable & Mutable

Park Bumsoo·2022년 5월 5일
0

Immutable & Mutable

mutable은 값이 변한다는 뜻이고, immutable은 값이 변하지 않는다는 의미이다.

Immutable(불변)

이름에서 알 수 있듯이 변경 불가능,바뀌지 않는 객체이다.

immutable 객체의 종류에는 대표적으로 String, Boolean, Integer, Float, Long 등이 있다.

(객체이므로 String을 제외하면 primitive의 래퍼타입이다).

이제 immutable 객체의 불변이라는 개념을 자세히 보자.

new 연산자로 객체를 생성하면 heap영역에 객체가 생기고 래퍼런스 값을 가지는 변수가 stack에 생길 것이다. 불변 객체라는 것은 이 객체의 값을 heap 영역에서 바꿀 수 없다는 뜻이다.

mutable(가변) 객체

mutable객체는 불변객체와 다르게 heap영역에 생성된 객체를 변경 할 수 있다.

대표적인 가변 객체는 List, ArrayList, HashMap,StringBuilder,StringBuffer 등이 있다.

가변객체를 multi-thread 환경에서 사용하려면 별도의 동기화 처리를 해줘야한다.

이렇게 동기화 처리된 객체중 하나가 StringBuffer이다.

profile
프론트엔드 주니어 개발자(React, Next.js)

0개의 댓글