Call by Value (값에 의한 호출)

  • 인자로 받은 값을 복사하여 처리한다.
  • 복사하여 처리하기 때문에 안전하다.
  • 원래의 값이 보존이 된다.
  • 복사를 하기 때문에 메모리가 사용량이 늘어난다.
    • Java에서 String + String 하지 않고 StringBuilder를 이용하여 append() 하는 개념 같다.
  • Java의 경우 함수에 전달되는 인자의 데이터 타입 (기본 자료형 / 참조 자료형) 에따라 방식이 달라진다.
    • 기본 자료형 : call by value 로 동작 (int, short, long, float, double, char, boolean)
    • 참조 자료형 : call by reference 로 동작 (Array, Class Instance)
  • JAVA에서 Call by reference는 해당 객체의 주소값을 직접 넘기는 게 아닌 객체를 보는 또 다른 주소값 생성
    • reference의 참조하는 객체의 value를 변경한다.

      Call by Reference (참조에 의한 호출)

  • 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 준다.
  • 복사를 하지 않고 직접 참조에 하기에 빠르다.
  • 직접 참조를 하기에 원래 값이 영향을 받는다.

    참조

  • Call by Value, Call by Reference 차이
  • java 에서의 call by value 와 call by reference1

태그:

카테고리:

업데이트:

댓글남기기