"primitive type은 call by value, 객체는 call by reference"라는 설명은 오해입니다. Java와 JavaScript는 객체를 전달할 때도 참조값의 복사본을 전달하는 call by value 방식만 씁니다. swap 예제와 그림으로 참조 재할당과 객체 상태 변경의 차이를 정리하고, 진짜 call by reference를 지원하는 언어와 비교합니다.