-
자바 인프런 - 배열(주소값, 레퍼런스, 다차원 배열)자바/인프런 인강 2018. 1. 28. 12:20
- 변수 선언시에 정한 배열의 크기는 나중에 변경이 불가하다.
- 배열 안에 값들은 인덱스를 이용해서 접근 할 수 있다.
예시)
int[] arrayA = {1,2,3,4,5}; //변수 선언과 함께 배열의 값을 할당
int[] arrayB = new int[5]; //변수 선언시 배열의 데이터형과 크기만 지정
int[0] = 1; //인덱스를 이용해서 배열 값을 할당
int[1] = 2;
int[2] = 3;
int[3] = 4;
int[4] = 5;
- 배열은 주소값으로 메모리에 저장된다. 주소값은 배열의 각 요소가 메모리에 저장되어 있는 위치를 의미한다. 주소값과 레퍼런스는 같은 뜻이다.
- 두 배열이 가리키는 레퍼런스 주소가 같다면 같은 데이터를 참조하고 있는 것이다.
예시)
int[] array = {1,2,3,4,5};
int[] array2 = array;
// array를 array2에 할당했으므로 for loop를 이용한 출력결과는
1
2
3
4
5
// array2의 배열 값을 새로 할당한다. array는 어떻게 될까?
예시)
array2[0] = 100;
array2[1] = 200;
array2[2] = 300;
array2[3] = 400;
array2[4] = 500;
// array의 출력 결과는..
100
200
300
400
500
중요: array와 array2는 같은 주소값(레퍼런스)을 참조했으므로 array2가 배열 값을 변경하면 array 또한 같은 배열 값으로 변경된다.
- 다차원 배열- 배열 안에 배열이 있는 것. 배열1의 주소값이 그 안에 배열2의 주소값을 가리키고 배열2의 주소값은 실제 데이터를 가리킨다.
- 다차원 배열은 복잡하고 가독성이 떨어져서 주로 데이터베이스를 이용한다.
예시)
int[][] array = new int[3][]; // 2차원 배열의 변수선언, { {배열1}, {배열2}, {배열3} }
int[0] = new int[2]; // { {값1, 값2}, {}, {} }
int[1] = new int[3]; // { {값1, 값2}, {값a, 값b, 값c} ,{} }
int[2] = new int[4];
예시)
int[][] array2 = new int[3][2];
array2[0][0]= 10;
array2[0][1]= 20;
array2[1][0]= 100;
array2[1][1]= 200;
array2[2][0]= 1000;
array2[2][1]= 2000;
//{ {10,20}, {100, 200}, {1000,2000}}
'자바 > 인프런 인강' 카테고리의 다른 글
자바 인프런 - 추상클래스 (0) 2018.02.01 자바 인프런 - 상속 (0) 2018.01.31 자바 인프런 - static, final (0) 2018.01.31 자바 인프런 - 패키지 (0) 2018.01.29 자바 인프런 - 클래스, 객체생성 (0) 2018.01.28