본문 바로가기

프로그래밍/Java

[Java] - 배열과 메모리

728x90
반응형

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

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

 

학습목표


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

 

배열의 메모리 크기


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

배열을 가리키는 배열이름


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

배열 기본속성


// 배열 기본속성 
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]

Reference


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

728x90
반응형

'프로그래밍 > Java' 카테고리의 다른 글

[Java] - 객체지향 프로그램이란  (0) 2020.12.17
[Java] - 반복문  (0) 2020.12.17
[Java] - 조건문  (0) 2020.12.17
[Java] - 배열(Array)  (0) 2020.12.17
[Java] - 기본자료형  (0) 2020.12.17