Java Deep Copy에 대한 질문
ringa_lee
ringa_lee 2017-05-17 10:07:33
0
4
464

아래 코드에서 그 이유는

으아악

딥 카피가 가능한가요?

으아악
ringa_lee
ringa_lee

ringa_lee

모든 응답(4)
巴扎黑

이것은 표면적으로는 "딥 카피"처럼 보입니다. 사실 학생이나 교수 모두 딥 카피를 구현하지 않습니다.

메인 메소드에 여러 출력을 추가합니다:

으아악

s1과 s2의 이름은 여전히 ​​"=="인 것을 볼 수 있습니다. p.name이 설정되지 않으면 이름도 "=="이므로 딥 카피가 구현되지 않습니다.
s2.p.name을 설정하면 s2.p.name은 다른 문자열 상수의 주소를 가리키므로 (s1.p.name == s2.p.name) //false

淡淡烟草味

Yours는 기본 데이터 유형만 복사할 수 있는 얕은 복사본입니다. 객체 멤버 변수를 복사하려면 멤버 변수의 복제 메서드도 호출해야 합니다. 이것이 제가 이해하는 방법입니다. 딥 카피#🎜🎜 #

Peter_Zhu

복제를 시도할 수는 없습니다. 이는 문자열이 여전히 참조된 원본임을 의미합니다.

淡淡烟草味

jdk clone 메소드의 기본 구현은 값 복사입니다. 기본 유형의 경우 복사 값입니다. 참조의 경우 복사 참조가 가리키는 주소입니다.

따라서 o.p=(Professor)p.clone(); 코드가 없으면 원본 개체의 p와 복제 개체는 얕은 복사본인 동일한 교수 개체를 참조합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!