함수 호출 방법에는 두가지가 있다.
Call by value는 인자로 받은 값을 복사하여 처리한다.
Call by reference는 인자로 바은 값의 주소를 참조하여 직접 값에 영향을 준다.
쉽게 말해 값을 복사해와서 처리하느냐, 아니면 직접 참조를 하느냐 차이이다.
장단점
Call by value
장점 : 복사하여 처리하기 때문에 안전하다. 원래의 값이 보존이 된다.
단점 : 복사를 하기 때문에 메모리가 사용량이 늘어난다.
Call by reference
장점 : 복사하지 않고 직접 참조를 하기에 빠르다.
단점 : 직접 참조를 하기에 원래 값이 영향을 받는다.
JAVA에서는 포인터가 따로 없으며, 기본적인 매개변수는 Call by Value지만
예외적으로 배열과 클래스는 참조변수로 Call by Reference로 작동한다