크리스의 개발일기

[JAVA] Call by value 와 Call by reference 차이 본문

JAVA

[JAVA] Call by value 와 Call by reference 차이

ChrisJang 2020. 11. 12. 13:00

인자를 전달하는 방식에는 크게 두가지가 있다.

1. Call Call by value

2. Call by reference

 

Call by value(값에 의한 호출)는 인자로 받은 값을 복사하여 처리를 한다. 

Call by reference(참조에 의한 호출)는 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 준다. 

간단히 말해 값을 복사를 하여 처리를 하느냐, 아니면 직접 참조를 하느냐 차이인 것이다.

 


Call by value(값에 의한 호출)

  • 장점 : 복사하여 처리하기 때문에 안전하다. 원래의 값이 보존이 된다.
  • 단점 : 복사를 하기 때문에 메모리가 사용량이 늘어난다.

Call by value 실행시 정보가 복사가 되기 때문에 메모리량이 늘어난다.

요즘에는 과거에 비해 프로그래밍 처리 속도가 매우 빨라 큰 영향이 없지만 방대한 데이터 계산시에 과부하의 원인이 될 수 있다.

하지만 복사처리가 되기 때문에 원래의 값은 영향을 받지 않아서 안전하다.

 

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

  • 장점 : 복사하지 않고 직접 참조를 하기에 빠르다.
  • 단점 : 직접 참조를 하기에 원래 값이 영향을 받는다.(리스크)

 

 

출처 : 

codingplus.tistory.com/29

Comments