Page 19 -
P. 19

이 코드는 배열 항목들을 값 0.0으로 세팅 한다. 배열을 사용하는 코드를 작성할 때는 해당 배열이                             1
                     선언되고, 생성되고, 초기화되었는지 항상 유의해야 한다. 한 가지라도 빠뜨리면 프로그램이 오류를
                     일으킬 수 있다.                                                                           기초 개념

                     디폴트 배열 초기화 선언  코드를 좀 더 간략히 만들기 위해 자바의 디폴트 배열 초기화 방식을 이용
                     할 수 있다. 그렇게 하면 배열 생성을 위한 3 단계 코드가 위 코드의 “축약된 방식”처럼 한 개의 구문
                     으로 축약될 수 있다. 부등호의 좌측은 배열 변수를 선언하고 우측은 배열 변수를 초기화한다. 이 경
                     우 double 타입의 디폴트 값이 자바에서는 0.0이기 때문에 “장황한 방식”에서의 for 루프를 사용하지
                     않아도 된다.

                     하지만 0 이 아닌 값으로 초기화하고 싶다면 명시적인 값 설정이 필요하다. 참고로 자바에서 숫자 타
                     입의 디폴트 값은 모두 0이다. boolean 타입의 경우 false가 디폴트 값이다.

                     초기화 선언  세 번째 방법은 컴파일 시점에 각 배열 항목의 값을 지정하는 것이다. 중괄호 { } 안에
                     지정할 값들을 쉼표로 분리하여 나열한다.

                     배열의 이용  32페이지에서는 전형적인 배열처리 코드를 보여준다. 배열을 선언, 생성한 다음에는 배

                     열의 이름 옆에 대괄호로 둘러싼 int 타입 항목 번호를 표기 함으로써 배열 안의 어떤 항목에든 접근
                     가능하다. 배열이 한번 생성되면 그 크기는 고정된다. 자바에서는 배열 a[]의 크기 값을 a.length를
                     통해 얻을 수 있다. 배열 a[]의 마지막 항목은 항상 a[a.length-1]이 된다. 자바는 배열 경계선을 자
                     동으로 검사해준다. 만약 크기 N 짜리 배열을 생성하고서 항목에 접근할 인덱스를 마이너스 값이나
                     N-1보다 큰 값을 지정하면 런타임에 ArrayIndexOutOfBoundsException이 발생하면 프로그램이 종료
                     되게 된다.

                     에일리어싱  배열의 이름은 배열 전체를 대표한다. 만약 배열 변수를 다른 배열 변수에 대입하면, 다
                     음의 예에서 보이듯이 두 변수 모두 같은 배열을 가리키게 된다.


                        int[] a = new int[N];
                        ||.
                        a[i] = 1234;
                        ||.
                        int[] b = a;
                        ||.
                        b[i] = 5678; |/ a[i]도 이제 5678이 된다.

                     이러한 상황을 에일리어싱이라고 한다. 에일리어싱은 찾기 힘든 미묘한 버그를 유발할 수 있다. 만약
                     배열의 복제본을 만드는 것이 의도라면 새로운 배열을 선언, 생성, 초기화하고 그 배열에 원본 배열
                     의 값들을 복사해 넣어야 한다. 이 부분은 32페이지의 세 번째 코드 예제에서 보여주고 있다.


                     2차원 배열  자바의 2차원 배열은 1차원 배열을 항목으로 가지는 배열이다. 2차원 배열해서 하부 배
                     열들은 서로 다른 크기일 수도 있다. 하지만 이 책에서는 대부분의 경우 같은 크기의 하부 배열로
                     이루어진 2차원 배열을 다룬다. 즉 M개의 열과 N개의 행으로 된 배열로써 각 하부 배열의 크기가



                                                                                              031
   14   15   16   17   18   19   20   21   22   23   24