public class Test079
{
public static void main(String[] args)
{
// 배열 선언
int[] arr;
// 메모리 할당
arr = new int[10];
// 배열은 다음과 같이 선언과 동시에
// 메모리 할당 및 초기화가 가능하다.
int[] arr2 = new int[10];
int[] arr3 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int arr4[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
// 배열 요소 접근(사용)
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
// ※ 값을 할당하지 않은 나머지 배열 공간은
// 비어있는 것이 아니라 자동으로 초기화 된다. → 0 (int형 배열)
int num = 10;
System.out.println("num : " + num);
//--==>> num : 10
System.out.println("arr : " + arr);
//--==>> arr : [I@15db9742
//-- 배열을 출력하기 위해 배열 변수를 일반 변수처럼 사용하여
// 출력하는 구문으로 작성하게 되면
// 배열의 각 방에 들어있는 데이터가 출력되는 것이 아니라
// 우리가 알아볼 수 없는 코드가 출력된다.
// 또한, 출력되는 값은 메모리의 주소값으로 오해하면 안된다.
// (자바는 메모리 주소값에 사용자가 직접 접근하는 것을 허용하지 않기 때문에)
System.out.println("arr[0] : " + arr[0]);
System.out.println("arr[1] : " + arr[1]);
System.out.println("arr[2] : " + arr[2]);
//--==>> arr[0] : 1
// arr[1] : 2
// arr[2] : 3
System.out.println(arr[0] + " " + arr[1] + " " + arr[2] + " " + arr[3] + " " arr[4] + " " + arr[5] + " " + arr[6] + " " + arr[7] + " " + arr[8] + " " + arr[9]);
//--==>> 1 2 3 0 0 0 0 0 0
//System.out.println(arr[10]);
//--==>> java.lang.ArrayIndexOutOfBoundsException
// 반복문을 활용하여 배열에 담긴 데이터 전체 출력
for (int i=0 ;i<10 ;i++ ) // i → 0 1 2 3 4 5 6 7 8 9
{
// 테스트
//System.out.println("i : " + i);
// 테스트
//System.out.printf("%2d", arr[i]);
System.out.printf("arr 배열의 %d번째 방 : %2d\n", i, arr[i]);
//--==>>
/*
arr 배열의 0번째 방 : 1
arr 배열의 1번째 방 : 2
arr 배열의 2번째 방 : 3
arr 배열의 3번째 방 : 0
arr 배열의 4번째 방 : 0
arr 배열의 5번째 방 : 0
arr 배열의 6번째 방 : 0
arr 배열의 7번째 방 : 0
arr 배열의 8번째 방 : 0
arr 배열의 9번째 방 : 0
*/
}
}
}