함수 호출 방식에는 크게 두 가지가 있다.
Call by value는 인자로 받은 값을 복사하여 처리 한다.
Call by reference는 인자로 받은 값의 주소를 참조하여 처리한다.
따라서 Call by reference로 받은 값을 통해 원래의 값에 영향을 줄 수 있다.
JAVA는 기본적으로 Call by value 방식으로 동작한다.
하지만 우리는 참조타입 변수는 Call by reference 방식으로 동작한다 착각한다.
이는 참조타입의 변수가 Heap 영역에 생성된 객체의 주소값을 참조하기에 발생하는 혼란이다.