Test test1 = new Test("장동완");
Test test2 = test1;
test1 == test2 // true
Test test1 = new Test("장동완");
Test test2 = test1;
test2.name = "홍길동";
System.out.print(test1.name) // 홍길동
알고리즘 문제를 풀다보면 얕은 복사에서 제시한 문제점들이 일어날수 있어
Deep Copy 기능을 통해 해결할수있다.
Test(this.name ,this.age);
Test copyWith(
int age,
String name,
) {
return new Test(
age ?? this.age,
name ?? this.name,
);
}
Test test1 = new Test("장동완");
Test test2 = test1.copyWith();
test1 == test2 // false
@Builder(toBuilder = true) // Deep copy 기능
public class Test
개인적으로는 라이브러리를 사용해서 빠르게 구현하는것도 좋지만
코드로 구현하는법을 숙지하여 상황에따라 커스텀하여 프로젝트에 녹일수 있으면
좋을거 같다고 생각이 든다.
개인적으로 프로젝트를 하면서 사용해본 경험은 없지만
꼭 알아둬야하는 개념이라고 생각한다.
이러한 생각이 드는 개념들이 생각보다 많다 많은걸 알아두고 싶은
욕심이 생긴다.