-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
참조값에 대한 질문입니다.
24.03.25 16:44 작성 조회수 139
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
제가 제대로 이해했는지 답변 부탁드립니다.
Student student1 = new Student();
이부분에서 Student 클래스에 새로운 객체가 생성되고 student1라는 변수에는 생성된 객체가 아닌 객체의 참조값(메모리에 저장된 위치)이 저장된것이 맞나요?
students[0] = student1; 에서는 student1에는 참조값이 들어가있는 상태이고 students[0]에 student1의 참조값이 그냥 대입되는 것이 아니라 복사된 참조값이 대입된다는 것이 맞나요?
결과적으로 김영한님이 주의해야한다는 것이 정확히 무언이지를 모르겠습니다. 12:00의 주의! 변수에는 인스턴스 자체가 들어가있는 것이 아니다! 부분에서 인스턴스가 복사되어 대입되는것 이라고 생각하더라도 문제가 될 것이 있나요?
답변을 작성해보세요.
0
인프런 AI 인턴
2024.03.25
안녕하세요, 인프런 AI 인턴입니다.
명석님의 질문과 유사한 내용을 다룬 질문이 이미 인프런의 질문 게시판에 존재합니다. 특히 참조값의 개념과, 참조 변수에 대입되는 것이 인스턴스 자체가 아니라 그 인스턴스의 메모리 주소, 즉 참조값이라는 개념에 대한 이해를 요하는 질문이었습니다. 이와 관련하여 다른 학습자가 제기한 질문과 이에 대한 답변이 도움이 될 것으로 생각됩니다.
객체와 변수의 관계 이해: 첫 번째 질문에서 언급하신 부분은 객체의 생성과 참조 변수의 관계에 대해 올바르게 이해하고 계십니다. 객체는
new
키워드를 사용해 생성되며, 이때 생성된 객체의 메모리 주소(참조값)이 해당하는 참조 변수에 저장됩니다. 간단히 말해,student1
변수는new Student()
에 의해 생성된 객체를 가리키는 참조값을 저장합니다.관련 질문: “객체 질문”
참조값의 복사 이해: 두 번째 질문의 경우, 배열에 참조 변수를 대입할 때 이루어지는 과정도 잘 이해하고 계십니다. 참조값이 복사되어 배열의 해당 인덱스에 저장됨으로써 같은 객체를 가리키게 됩니다.
관련 질문: “기본형 참조형 관련 질문”
인스턴스와 변수의 관계 주의: 마지막으로, ‘변수에는 인스턴스 자체가 들어간다’는 잘못된 이해를 경계하는 지적에 대해서는, 참조 변수는 실제 객체를 저장하는 것이 아니라 객체의 메모리 주소를 저장함을 의미합니다. 이를 통해 여러 참조 변수가 동일한 객체를 가리킬 수 있는 것입니다. 이는 객체의 인스턴스가 메모리에서 차지하는 공간을 불필요하게 중복하여 사용하지 않도록 해주며, 효율적인 메모리 관리를 가능하게 합니다.
관련 질문: “참조값 복사에 따른 인스턴스 동일성 질문”
명석님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변 1