기본형과 참조형의 공유
: 자바의 데이터 타입을 가장 크게 보면 기본형(Primitive Type)과 참조형(Reference Type)으로 나눌 수 있다.
- 기본형: 하나의 값을 여러 변수에서 절대로 공유하지 않는다.
- 참조형: 하나의 객체를 참조값을 통해 여러 변수에서 공유할 수 있다.
공유 참조와 사이드 이펙트
:사이드 이펙트(Side Effect)는 프로그래밍에서 어떤 계산이 주된 계산 외에 추가적인 부수 효과를 일으키는 것
불변 객체
1. 자바에서 객체의 공유 참조는 막을 수 없다.
2. 불변 객체를 도입하여 값의 변경을 막는다.
3. 불변 객체이므로 참조하는 인스턴스의 값을 변경하려면 새로운 인스턴스를 생성해서 할당해야한다.
withXXXX
:"with"는 관례처럼 사용되는데, 원본 객체의 상태가 그대로 유지됨을 강조하면서 변경사항을 새 복사본에 포 함하는 과정을 간결하게 표현한다
출처 - 김영한의 실전 자바 중급