[Java] 깊은 복사(Deep Copy)와 얕은 복사(Shallow Copy)

2024. 6. 28. 17:35· Languages/Java
목차
  1. 얕은 복사
  2. 깊은 복사

얕은 복사(Shallow Copy)는 '주소 값'을 복사한다는 의미이며,

깊은 복사(Deep Copy)는 '실제 값'을 새로운 메모리 공간에 복사한다는 의미이다.

 

얕은 복사

얕은 복사의 경우 주소 값을 복사하기 때문에 참조하고 있는 실제값이 같다.

따라서 복사한 객체가 변경된다면 기존의 객체도 변경된다.

동일한 주소를 참조하고 있기 때문이다.

int[] arrData1 = {1,2,3};
int[] arrData2 = arrData;
		
arrData2[0] = 10;
System.out.println(arrData1[0]); -> 10

 

 

깊은 복사

깊은 복사의 경우 복사하려는 원본 객체에 대해

인스턴스화할 수 있는 클래스 내부의 클래스 변수(static)와 메서드(static)뿐 아니라 인스턴스 값 모두를 복사하여

원본 객체로부터 독립적인 객체를 생성한다.

원본과 주소가 다르다.

int[] arrData1 = {1,2,3};
int[] arrData2 = arrData.clone();
// int[] arrData2 = arrData.copyOf();
// copyOf() 함수는 배열의 시작점부터 원하는 길이까지 배열을 복사
// int[] arrData3 = arrData.copyOfRange();
// copyOfRange() 함수는 원하는 시작점부터 원하는 길이까지 배열을 복사
		
arrData2[0] = 10;
System.out.println(arrData1[0]); -> 1

 

https://velog.io/@dm911/Java-%EA%B9%8A%EC%9D%80-%EB%B3%B5%EC%82%ACDeep-Copy%EC%96%95%EC%9D%80-%EB%B3%B5%EC%82%ACShallow-Copy-%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C

 

Java 깊은 복사(Deep Copy),얕은 복사(Shallow Copy) 에 대해서..

Java 깊은 복사(Deep Copy)와 얕은 복사(Shallow Copy) 이번에 정리할 내용은 자바에서의 깊은 복사와 얕은 복사 입니다. 원한 값은 1이 나오길 바랬지만 원하지 않는 값이 나온 이유를 살펴 봅시다. 깊은

velog.io

 

'Languages > Java' 카테고리의 다른 글

[Java] Map을 Value 값으로 오름차순, 내림차순 정렬하기  (0) 2025.01.20
[Java] try-with-resources 예외 처리  (0) 2024.08.22
[Java] Scanner vs BufferedReader 사용자 입력 받기  (0) 2024.08.08
[Java] == 과 equals()로 문자열 비교하기  (0) 2024.06.28
[Java] 자바는 컴파일 언어? 인터프리터 언어?  (0) 2024.06.27
  1. 얕은 복사
  2. 깊은 복사
'Languages/Java' 카테고리의 다른 글
  • [Java] try-with-resources 예외 처리
  • [Java] Scanner vs BufferedReader 사용자 입력 받기
  • [Java] == 과 equals()로 문자열 비교하기
  • [Java] 자바는 컴파일 언어? 인터프리터 언어?
효딩
효딩
개ㄱ발은 기세다. 줄여서 객기.
효딩
hyoding
효딩
전체
오늘
어제
  • 분류 전체보기 (245)
    • SKKU SW (30)
      • Computer Architecture (14)
      • Database (4)
      • Computer Network (3)
      • Operating System (7)
      • Mobile App Programming (2)
    • SuperCoding (68)
    • CS (8)
    • Web Programming (19)
    • Cloud (13)
    • Languages (45)
      • Python (8)
      • Java (37)
    • Supporters (8)
      • MoteMote (6)
      • NHN Cloud (2)
    • Certification (27)
      • Network Advisor (14)
      • ADsP (10)
      • Engineer Information Proces.. (3)
    • Finance (9)
      • 경제금융용어 (3)
    • Woori FISA (14)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 네트워크관리사 합격
  • 우리FISA
  • 우리fis아카데미
  • 코틀린
  • Kotlin
  • 네트워크관리사 후기
  • 인프라
  • 클라우드 서비스
  • 네트워크관리사 준비물
  • 우리에프아이에스
  • 인프라개발
  • 네트워크관리사2급
  • apppaas
  • 서버배포
  • 클라우드
  • K-디지털트레이닝
  • 네트워크관리사 커트라인
  • 앱개발
  • 네트워크관리사2급 필기
  • 봐
  • 클라우드서비스개발
  • 글로벌소프트웨어캠퍼스
  • 서버개발
  • rds local 접속
  • 서버생성
  • AWS
  • 코틀린문법
  • 네트워크관리사2급 공부방법
  • nhn cloud
  • 네트워크관리사

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
효딩
[Java] 깊은 복사(Deep Copy)와 얕은 복사(Shallow Copy)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.