포인터는 아무 메모리에나 접근할 수 있어서 프로그램이 맛이 갈 수 있어서 이를 안전하게 구현한 게 레퍼런스야. 레퍼런스는 프로그래머가 넣어준 객체에 한해서만 가리킬 수 있지. 메모리 주소를 마음대로 바꿀 수가 없음. 그리고 자바의 객체 변수는 기본적으로 모두 레퍼런스형이기 때문에 포인터랑 같다. Primitive Type이라고 해서 int, short, double 이런 건 C/C++의 일반 변수랑 같고 인자로 넘길 때도 Call by value가 일어나지만 Wrapper Class인 Integer, Short, Double 같은 걸로 넘기면 객체의 참조가 전달되기 때문에 Call by reference 구현이 가능.
참조자는 객체지향이라기보다 포인터를 대체한개념 내부적으로 포인터참조연산으로 구현됨
아 C++은 포인터 있구나
객체지향언어 자바는 포인터개념이 없냐?
포인터는 아무 메모리에나 접근할 수 있어서 프로그램이 맛이 갈 수 있어서 이를 안전하게 구현한 게 레퍼런스야. 레퍼런스는 프로그래머가 넣어준 객체에 한해서만 가리킬 수 있지. 메모리 주소를 마음대로 바꿀 수가 없음. 그리고 자바의 객체 변수는 기본적으로 모두 레퍼런스형이기 때문에 포인터랑 같다. Primitive Type이라고 해서 int, short, double 이런 건 C/C++의 일반 변수랑 같고 인자로 넘길 때도 Call by value가 일어나지만 Wrapper Class인 Integer, Short, Double 같은 걸로 넘기면 객체의 참조가 전달되기 때문에 Call by reference 구현이 가능.
https://kldp.org/node/70013
오오 그렇구나 ㄳㄳ
객체지향 언어라서 레퍼런스형이 있는 게 아니라 객체지향 패러다임과 상관 없이 포인터를 safe하게 구현하려고 내놓은 개념임.