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

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

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 // 배열 요소만 복사로 주소가 다름
배열 안에 또 다른 배열이 존재
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]