개발을 하다 보면 함수의 파라미터로 변수를 넘겨주어야 한다. 각 언어마다 변수를 넘겨주는 방법(Pass By Value, Pass By Reference)이 다른데, 이를 정확히 인지하지 못하면 예상치 못한 버그를 발생시킬 수 있다. 이번에는 두가지 방법의 차이점을 알아보도록 하자. 아래의 내용은 dzone.com/articles/pass-by-value-vs-reference-in-java 를 바탕으로 작성하였습니다. 1. Pass By Value(Call By Value)에 대한 이해 [ Pass By Value(값에 의한 전달)의 의미 ] Pass By Value(값에 의한 전달)는 복사된 데이터를 전달하여 구성함으로써, 값을 수정하여도 원본의 데이터에는 영향을 주지 않도록 하는 방식이다. 예를 들..
개발을 하다 보면 함수의 파라미터로 변수를 넘겨주어야 한다. 각 언어마다 변수를 넘겨주는 방법(Pass By Value, Pass By Reference)이 다른데, 이를 정확히 인지하지 못하면 예상치 못한 버그를 발생시킬 수 있다. 이번에는 Java가 어떠한 방식으로 파라미터를 전달하는지 살펴보도록 하자. 1. 메모리 할당에 대한 이해 어떠한 변수를 선언한다는 것은 메모리를 할당한다는 것을 의미한다. 변수를 선언하기 위해 할당되는 메모리로는 크게 스택과 힙이 있다. 스택 영역에는 함수의 호출과 함께 지역 변수 또는 매개변수 등이 할당되며 정렬된 방식으로 메모리가 할당되고 해제된다. 반면에 힙 영역에는 클래스 변수(또는 인스턴스 변수) 또는 객체 등이 할당되며, 우연하고 무질서하게 메모리가 할당된다. (..
개발을 하다 보면 함수의 파라미터로 변수를 넘겨주어야 한다. 각 언어마다 변수를 넘겨주는 방법(Pass By Value, Pass By Reference)이 다른데, 이를 정확히 인지하지 못하면 예상치 못한 버그를 발생시킬 수 있다. 이번에는 Java가 어떠한 방식으로 파라미터를 전달하는지 살펴보도록 하자. 1. 문제 풀어보기 Pass By Value와 Pass By Reference에 대해 이야기하기 전에, 우리는 이들에 대해 얼마나 이해하고 있는지 확인하기 위해 아래의 간단한 시스템의 출력 결과를 예상해보도록 하자. 해당 유형의 문제는 실제 유명한 기업들에서 자주 출제되는 문제이기도 하다. [ 실행할 프로그램 ] class Dog { private String name; public Dog (Stri..