원시 타입의 값은 변경 불가능한 값이다. (imutable value)
참조 타입의 값은 변경 가능한 값이다. (mutable value)
원시 타입의 값을 변수에 할당하면 변수가 가리키는 메모리 공간에는 실제 값이 저장된다.
참조 타입의 값을 변수에 할당하면 변수가 가리키는 메모리 공간에는 참조 값(주소)가 저장된다.
원시 값이 저장된 변수를 다른 변수에 할당하면 원본의 값이 복사되어 전달된다.
(=값에 의한 전달 =pass by value)
이후 다른 변수가 변경되어도 원본의 값은 변경되지 않는다.
참조 타입의 데이터가 저장된 변수를 다른 변수에 할당하면 원본의 참조 값(주소)가 복사되어 전달된다.
(=참조에 의한 전달 =pass by reference)
이후 다른 변수를 이용해 값을 변경하면 원본의 값이 변경된다.