T.I.L #14 참조(Reference)

개발자지망생·2023년 10월 24일
0

참조(Reference)란?

참조란 객체를 식별하고 객체에 대한 메모리 위치를 가리키는 값이다. 참조는 객체 지향 프로그래밍에서 중요한 개념 중 하나로, 객체를 생성하고 다루는 데 사용된다.

1. 참조 변수(Reference Variables)

자바에서 객체를 생성하면 메모리에서 객체를 위한 공간이 할당된다. 이때, 객체에 대한 참조를 가리키는 변수가 생성되며, 이변수를 참조 변수라고 한다. 참조 변수는 객체의 데이터 및 메소드를 접근하는 데 사용된다.

MyClass 객체 = new MyClass(); // 객체 생성 및 참조 변수 객체에 할당

2. 객체의 실제 인스턴스

참조 변수는 객체의 실제 인스턴스를 가리키며, 실제 객체는 메모리에 생성되어 데이터와 메소드를 가진다. 참조 변수를 통해 해당 객체에 접근할 수 있다.

3. 객체 생성과 가비지 컬렉션

객체를 생성하면 메모리에서 객체를 참조하는 참조 변수가 필요하다. 그러나 참조 변수가 더 이상 해당 객체를가리키지 않으면 해당 객체는 더 이상 필요하지 않으므로 Java의 가비지 컬렉션(Garbage Collection)에 의해 제거된다. 따라서 객체를 사용한 후 참조 변수를 null로 설정하거나 다른객체로 참조를 대체하면 해당 객체는 가비지 컬렉션의 대상이 된다.

객체 = null; // 객체에 대한 참조 제거

4. 참조 복사

참조 변수는 객체의 참조를 복사하므로, 둘 이상의 참조 변수가 동일한 객체를 가리킬 수 있다. 이것은객체를 공유하거나 변경사항을 객체에 반영할 수 있게 한다.

MyClass 객체1 = new MyClass();
MyClass 객체2 = 객체1; // 객체1과 객체2는 동일한 객체를 가리킴

5. 객체 복사

객체 자체를 복사하는 것이 아니라 참조 변수만 복사되므로, 참조 변수를 복사하면 두 변수가 동일한 객체를 가리킨다. 객체를 복사하려면 별도의 로직이 필요하며, 일반적으로 두 번째 객체는 첫 번째 객체의 내용을 복사하는 방식으로 생성된다.

MyClass 객체1 = new MyClass();
MyClass 객체2 = new MyClass(객체1); // 객체1의 내용을 복사하여 객체2를 생성

참고한 것 : 자바의 정석 , 구글 서칭

0개의 댓글