hyeongwoo's blog

[Java] 배열_(복사) 본문

JAVA

[Java] 배열_(복사)

toribro 2024. 1. 17. 17:41

배열 복사

 

배열은 객체이므로 객체의 복사에대해서 알아본다  객체의 복사는 얕은복사와 깊은 복사가 있다.

얕은 복사

  •  원본 객체의 주소 값만 가져와  복사본 객체의 참조형 변수에 저장하는것
  •  하나의 객체를 두변수가 참조한다.
  • 원본값을 변경하면 복사복 객체도 변경되는 문제점이 있다.

깊은 복사

  • 다른 메모리 주소의 변수로 객체의 값들을 복사하는것
  • 얕은 복사의 문제점을 해결해준다

 

배열 복사

  얕은복사

  • 배열의 주소만 다른 변수로 복사한다
  • 두개의 참조변수가 같은 배열 객체의 주소를 참조한다

  깊은 복사

  • 다른 메모리주의 공간으로 배열의 값들을 복사한다
  • 원본 배열의 참조변수와 복사된 배열의 참조변수는 서로 다른 메모리주소를 참조한다

자바에서 배열의 깊은 복사 방법

  1. for문으로 직접복사
  2. Arrays클래스에서 제공하는 copyof(원본배열명,복사한길이) 메소드 사용
  3. arraycopy(원본배열,복사시작할인덱스,복사본배열,복사본배열의 복사시작인덱스,복사할갯수) 메소드 이용하기
  4. clone 메소드 이용하기

'JAVA' 카테고리의 다른 글

[Java] 제어문_(조건문)  (1) 2024.01.21
[Java] 제어문_(반복문)  (1) 2024.01.21
[Java] 배열_(개념)  (0) 2024.01.16
[Java] 연산자  (0) 2024.01.14
[Java] 변수  (0) 2024.01.14