배열과 메모리

실전 자바 강좌 (ver.2018) - 초보부터 개발자 취업까지!! 강의를

개인공부하며 정리하는 용도의 포스팅입니다.

학습목표


  • 메모리에서 배열이 어떤 형태로 존재하는지에 대해 학습한다.

배열의 메모리 크기


  • 배열을 구성하는 데이터의 자료형에 따라서 배열의 메모리 크기가 결정된다.

배열과 메모리1

배열을 가리키는 배열이름


  • 기본 자료형 데이터를 담고있는 변수와 달리 배열 변수배열 데이터의 주소를 담고 있다.

배열과 메모리2

배열 기본속성


// 배열 기본속성
int[] arrAtt1 = {10, 20, 30, 40, 50, 60};
int[] arrAtt2 = null;
int[] arrAtt3 = null;

// 배열 길이
System.out.println("arrAtt1.length : " + arrAtt1.length);

// 배열 요소 출력
System.out.println("arrAtt1 : " + Arrays.toString(arrAtt1));

// 배열 요소 복사
arrAtt3 = Arrays.copyOf(arrAtt1, arrAtt1.length);
System.out.println("arrAtt3 : " + Arrays.toString(arrAtt3));

// 배열 레퍼런스
arrAtt2 = arrAtt1;
System.out.println("arrAtt1 : " + arrAtt1);
System.out.println("arrAtt2 : " + arrAtt2);
System.out.println("arrAtt3 : " + arrAtt3);

결과

arrAtt1.length : 6
arrAtt1 : [10, 20, 30, 40, 50, 60]
arrAtt3 : [10, 20, 30, 40, 50, 60]
arrAtt1 : [I@4554617c]
arrAtt2 : [I@4554617c]
arrAtt3 : [I@74a14482]
  • 배열 주소부분은 고정값이 아니라 실행 pc의 환경에 따라 달라질수 있다.

다차원 배열


  • 배열 안에 또 다른 배열이 존재한다.

예시

// 다차원 배열
int[][] arrMul = new int[3][2];
arrMul[0][0] = 10;
arrMul[0][1] = 100;
arrMul[1][0] = 20;
arrMul[1][1] = 200;
arrMul[2][0] = 30;
arrMul[2][1] = 300;

System.out.println("arrMul[0] : " + Arrays.toString(arrMul[0]));
System.out.println("arrMul[1] : " + Arrays.toString(arrMul[1]));
System.out.println("arrMul[2] : " + Arrays.toString(arrMul[2]));

결과

arrMul[0] : [10, 100]
arrMul[1] : [20, 200]
arrMul[2] : [30, 300]

배열과 메모리2

Reference


실전 자바 강좌 (ver.2018) - 배열과 메모리

Comments