참조값
-
참조변수에 대한 작은 오해개발/자바 2020. 3. 16. 14:33
자바에서 기본 자료형 변수를 만들 때를 제외하고, 객체는 전부 new 연산자를 이용해 동적으로 메모리를 할당한다. new 연산자가 반환하는 것은 내부적으로는 메모리의 주소겠지만 자바에서 개발자는 메모리 주소를 알 수 없고 해싱을 거친 참조값(해시코드)만 확인할 수 있다. 애초에 자바에서는 메모리를 직접 다룰 일이 없다. 참조값은 메모리 주소 정보를 갖고 있기 때문에 C/C++의 포인터와 같다고 봐도 된다. 객체를 매개변수로 넘길 때 해당 객체의 참조값이 전달되므로 함수 내에서 객체의 데이터를 변경하면 외부에서도 바뀐 결과를 확인할 수 있다. 다음의 결과는 Lee가 출력된다. changeName()의 매개변수 student는 지역변수이지만 main()에서 생성한 Student 객체의 참조값을 가지고 있으며..