inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 중급 2편

직접 구현하는 연결 리스트3 - 추가와 삭제2

참조형 return 관련 질문

265

disorder422

작성한 질문수 1

0

 


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) y
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) y
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) y

[질문 내용]
MyLinkedListV2 클래스의 remove 함수에서

Object removedItem = removeNode.item;
...
removeNode.item = null;
return removedItem;

위와 같은 방식으로 item을 반환하기 전에 null로 초기화를 해주고 있습니다.

removedItem에 참조형인 removeNode.item을 할당하면 참조값이 복사되어 값이 null인 참조값을 반환할 것이라고 생각했는데, 실제 코드를 실행시켜보니 삭제된 노드의 item 값이 정상적으로 반환되는 것을 확인했습니다.

 

Object removedItem = removeNode.item을 실행하면 참조값이 아니라 데이터가 들어가게 되는 건가요?

java 객체지향 코딩-테스트 알고리즘

답변 1

1

나무늘보

안녕하세요. disorder422님, 공식 서포터즈 코즈위버입니다.

코드에 따른 상황을 천천히 살펴보시면 이해가 되실거에요

 

Object removedItem = removeNode.item;

여기서 removeNode의 필드 item이 가지고 있던 주소값을 removedItem에 복사하였습니다.

 

removeNode.item = null;

removeNode 의 필드 item 의 주소값을 null로 변경합니다. 하지만 removeItem에는 이미 item의 주소값이 복사 된 뒤지요. 그래서 여전히 removeItem 의 주소값을 이용해 인스턴스에 접근할 수 있는 상태입니다.

 

감사합니다.

제네릭 타입 매개변수 제한과 관련한 문의입니다.

0

79

3

강의가 좀 버겁다 느껴질 때 학습방법 문의

1

132

4

제네릭 반환값 및 파라미터 선언 방식의 변화 <T> T

0

60

1

new T()가 안 되는 니유

0

100

1

안녕하세요, 문제와 실행 결과가 다른 부분이 있어 제보드립니다.

0

98

2

자바 로드맵 선택 질문

0

111

2

실전 자바 중급 - 2편 후 추천 강의

0

176

2

실프로젝트에서 Java25버전 사용

0

119

1

Arrays.sort

0

67

1

블로그 작성 시, 저작권 문제에 대하여

0

166

1

중급2편 56강의 bucket.add(value); 메서드가 이해가 안됩니다.

0

94

3

pop()과 poll()의 차이

0

94

1

특정 index의 노드 조회하기 질문

0

66

2

List.of() 비어있는 불변 리스트 생성

0

81

2

문제2: 개 타입 반환

0

54

2

[리뷰] 중급2편까지 겨우 완강 했습니다.

0

112

2

문제와 풀이1 Ex2와 Ex3

0

65

2

노드 삭제시 노드 null값으로 초기화

0

76

2

강의영상에 대한 질문

0

57

1

타입 매개변수 제한

0

59

1

compareTo

0

68

1

직접 구현하는 연결리스트 3 - 추가 부분 질문있습니다

0

98

3

섹션 8-58 equals and hashcode 에서 코드가 다르게 생성됨

0

69

2

퀴즈 오류 관련 문의

0

109

1