Java 배열 기본값, 배열 복사
1. 배열 타입별 기본값
- 배열을 생성한 후 default 값으로 자동으로 초기화 된다.
종류 |
타입 |
default 값 |
정수형 |
byte[] |
0 |
short[] |
0 |
|
char[] |
'\u0000' |
|
int[] |
0 |
|
long[] |
0L |
|
실수형 |
float[] |
0.0F |
double[] |
0.0 |
|
논리형 |
boolean[] |
false |
참조형 |
클래스 |
null |
2. 배열 복사. 얕은 복사 vs. 깊은 복사
1) 얕은 복사
- 얕은 복사일 경우 기종의 항목들을 참조하는 또하나의 객체를 만들 뿐이다.
- 코드1을 보면 new_arr = old_arr로 복사 후 new_arr[1]의 값을 바꾸었다.
- 이후 old_arr의 요소들을 확인해보면 old_arr[1]의 값이 바뀐 것을 확인할 수 있다.
코드1
결과1
- 따라서 얕은 복사는 같은 값들을 참조하는 다른 이름의 객체를 만든 것 뿐이다.
2) 깊은 복사
- 깊은 복사를 해주기 위해서는 크게 2가지 방법이 있다.
> for문을 사용하여 일일이 값을 초기화 해준다.
> System.arraycopy()를 사용한다.
- 코드2는 System.arraycopy()를 사용하였다.
System.arraycopy(복사 할 배열, 시작 index, 복사 받는 배열, 시작 index, 길이[복사할 개수])
코드2
결과2
- 깊은 복사는 얕은 복사와 달리 새로운 값을 같으므로 new_arr 요소의 값을 변경하여도 old_arr의 요소가 변하지 않는다.
'JAVA > 기초' 카테고리의 다른 글
Java Singleton(싱글톤) (0) | 2020.03.17 |
---|---|
Java static 정적 변수, 메소드 (0) | 2020.03.17 |
Java 향상된 for문, label (0) | 2020.03.16 |
Java 형변환 (0) | 2020.03.15 |
Java 데이터 타입 (0) | 2020.03.15 |