[TIL_JAVA] 배열과 메모리

HKS·2020년 12월 17일
0

기초문법

목록 보기
6/8

1. 배열의 메모리 크기

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

2. 배열을 가르키는 배열이름

변수는 기본 자료형 데이터를 담고 있고
배열 변수는 배열 데이터의 주소를 담고 있음

  • 배열 안의 값인 100,200...은 배열 i에 들어있는 것이 아니라
    각각 메모리에 들어가 있음
  • 배열 i의 메모리는 별개로 존재하고
    배열 i에는 배열의 첫번 째 인덱스 i[0]의 주소를 담고 있음

3. 배열 기본속성

package basicGrammar;

import java.util.Arrays;
import java.util.Scanner;

public class Variable {

	public static void main(String[] args) {
		int[] arr1 = {10, 20, 30, 40, 50};
		int[] arr2 = null;
		int[] arr3 = null;
		
		// 배열의 길이
		System.out.println("arr1.length : " + arr1.length);
		
		// 배열 요소 출력
		System.out.println("arr1 : " + Arrays.toString(arr1));
		
		//배열 요소 복사
		arr3 = Arrays.copyOf(arr1, arr1.length);
		System.out.println("arr3 : " + Arrays.toString(arr3));
		
		//배열 레퍼런스
		arr2 = arr1;
		System.out.println("arr1 : " + arr1);
		System.out.println("arr2 : " + arr2);
		System.out.println("arr3 : " + arr3);

	}
}
출력
arr1.length : 5
arr1 : [10, 20, 30, 40, 50]
arr3 : [10, 20, 30, 40, 50]
arr1 : [I@6d06d69c 
arr2 : [I@6d06d69c // 메모리 주소를 대입
arr3 : [I@7852e922 // 배열 요소만 복사로 주소가 다름

4. 다차원 배열

배열 안에 또 다른 배열이 존재

package basicGrammar;

import java.util.Arrays;

public class Variable {

	public static void main(String[] args) {
		int[][] arrMat = new int[3][2]; //3행 2열
		arrMat[0][0] = 1;
		arrMat[0][1] = 2;
		arrMat[1][0] = 10;
		arrMat[1][1] = 20;
		arrMat[2][0] = 100;
		arrMat[2][1] = 200;
		
		System.out.println("arrMat[0] : " + Arrays.toString(arrMat[0]));
		System.out.println("arrMat[1] : " + Arrays.toString(arrMat[1]));
		System.out.println("arrMat[2] : " + Arrays.toString(arrMat[2]));
		
	}
}
출력
arrMat[0] : [1, 2]
arrMat[1] : [10, 20]
arrMat[2] : [100, 200]
profile
하루 한 줄이라도

0개의 댓글