다음과 같이 호출하면 참조 fred가 e 변수로 복사된다.
boss.replaceWithZombie(fred);
그런 다음 e는 다른 참조로 설정된다. 메서드가 끝날 때 e는 유효 범위를 벗어난다. 결국 fred는 어디서도 변경되지 않았다.
Note ≣
자바는 객체에 ‘참조를 이용한 호출’을 사용한다고 말하는 사람도 더러 있다. 두 번째 예제에서 보았듯이 이 말은 사실이 아니다. 참조를 이용한 호출을 지원하는 언어에서는 메서드가 전달받은 변수의 내용을 다른 것으로 교체할 수 있다. 자바에서는 기본 타입 값은 물론 객체 참조까지 모든 매개변수가 값으로 전달된다.