
call by reference는 참조 주소(메모리 주소를) 직접 넘긴다.
즉 Java에서는 지원하지 않고 call by value 값을 넘기는 방식으로 동작한다.
메모리 주소(pointer)를 집접 다룰 수 있다 -> call by reference 구현 가능
call by value : 메서드에 변수를 전달할 때 보낸 값이 복사되어 메서드 내에서 사용된다.
call by reference : 메서드에 변수를 전달할 때 메모리 주소가 전달되어 메서드내에서 메모리 주소를 변경하면 호출자의 변수도 변경된다. (주소자체를 변경할 수 있다)
java -> 참조된 값 자체는 변경 가능하지만 참조된 주소 자체는 변경 불가하다.
++)spring -> 스프링에서도 객체를 전달받아 객체 내부의 상태를 변경한다.
개발을 공부하다 보면 가끔 "이걸 왜 공부하지?" 혹은 "이건 내 파트가 아닌 것 같은데?"라는 의문이 들 때가 있다. 하지만 C 언어의 포인터를 정보처리기사 공부를 통해 접했을 때, 위에서 다룬 call by reference 개념이 한 번에 이해된 것을 보면, 결국 이런 기본기들이 쌓여 전체적인 이해도를 높여준다는 것을 알게 된다. 이러한 경험은 꾸준히 기본기를 다지는 것이 얼마나 중요한지 다시금 깨닫게 한다.