inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Nền tảng vững chắc! Bắt đầu với Java - Phần 2: OOP và JVM

Sao chép sâu và Sao chép nông (※Rất quan trọng)

clone() 메서드를 재정의함으로써 Deep copy로 구현한다로 이해하면 될까요?

Đã giải quyết

120

brong

13 câu hỏi đã được viết

0

안녕하세요!

한가지 아리송한 부분이 있어 질문 드립니다:)

20:30 정도에 clone()이 등장하는데 clone()을 그냥 사용하는 것이 아니라 '재정의 하여 사용함으로써 Deep copy가 된다'는 의미로 이해하면 될까요?

java 객체지향 jvm data-structure

Câu trả lời 2

0

brong

다음 강의에서 설명해주시네요:)

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 형씌님!

질문하신 내용은 clone() 메서드와 관련된 중요한 개념을 정확히 짚어주셨습니다. 먼저 기본적으로 Java의 clone() 메서드는 얕은 복사를 수행합니다. 이 메서드는 해당 객체의 모든 필드 값을 그대로 복사하여 다른 메모리 위치에 동일한 데이터를 가진 객체를 만듭니다. 그러나 필드가 참조 타입인 경우 그 필드의 참조값만 복사되므로 내부의 객체 구조는 그대로 이어집니다.

따라서 deep copy를 원한다면 clone() 메서드를 오버라이드(재정의)하여 객체의 모든 필드, 특히 중첩된 객체들까지 새로운 인스턴스를 생성하고 그 참조를 복사해줘야 합니다. 이를 통해 원본과 복사본 객체가 완전히 독립적인 구조가 되는 것입니다.

관련하여 더 깊이있는 설명을 원하신다면 다음의 유사한 질문들을 참고하실 수 있습니다:
- 상속과 오지랖의 콜라보 예제에서 clone() 메서드에 대한 문의드립니다
- Deep Copy 부문 관련 질문

이 두 게시물에서는 clone() 메서드에 대한 오버라이드 및 깊은 복사에 대한 설명이 포함되어 있어, 형씌님의 이해에 많은 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

compareTo를 사용하는 이유가 뭔가요?

0

46

1

[실습] MyString에 복사 생성자 추가

0

38

1

안녕하세요~ 회수라는 의미에 대해서 질문합니다.

0

71

1

equals의 재정의(overriding)에 대해서

0

81

2

TestEx 객체 생성 시 생성자 호출 질문

0

62

2

[MyString 실습 인스턴스 중복 생성 문의] MyString.setString(String param)

0

100

2

주소록 실습 3단계에서 막혔어서 조언을 구하려고 질문 드립니다.

0

85

2

해시 알고리즘 관련으로 질문이 있습니다.

0

74

2

21분 경 Old generation의 GC 설명 질문입니다.

0

102

3

임시 객체의 첫 번째 상황에 대한 질문

0

70

2

String 객체가 하나 더 생성되는 이유가 궁금합니다

0

190

3

하위 클래스와 상위 클래스의 생성자 순서

0

105

2

GC의 age와 관련하여 질문 있습니다.

0

97

2

Object Header 의 Klass word (39강 36:00)

0

115

2

method area는 이름이 class area가 아니고 왜 method aread인지 궁금합니다.

0

139

2

교안 p.305 'throw 필수' 질문

0

81

1

Metaspace에 대한 질문

0

259

2

MyListEx 질문드립니다.

1

136

1

part3 강의 개강

0

198

2

문자열 비교 강좌에서 문자열 선언 방법 간에 hashCode() 값 관련한 질문입니다.

0

222

2

상속과 오지랖의 콜라보 예제에서 clone() 메서드에 대한 문의드립니다.

1

182

2

보이지 않는 임시 객체의 자막 수정 요청

0

116

2

스레드 관련해서 질문이 있습니다.

0

203

1

metaspace 관련 문의드립니다.

0

199

2