Java프로그래밍 : 배열
다른 시험 준비와 국비훈련 개강으로 정신이 없어서 한동안 학교 강의에 손도 못댔다..
개강 후 두번째 맞는 주말, 교재 펼쳐서 공부시작 ~
배열
배열파트에 있어서 중요한 부분 :
1. 배열의 선언 2. 배열의 초기화 3.배열의 생성 이 3가지의 개념을 명확히 이해할 것.
배열의 선언은
int [ ]array;
int array[ ]; 식으로 가능 변수처럼 자료형표기를 꼭 해줘야한다.
배열의 초기화는 변수처럼 선언과 동시에 가능하다.
int array[ ] = {1,2,3};
int array2[ ][ ]= {{1,2},{1,2,3};
다만 생성되지 않은 배열은 배열의 선언문에서만 초기화가 가능하다.
배열의 생성이란?
: new 키워드로 배열을 저장하기 위한 메모리를 할당 받는 것을 의미한다.
클래스의 객체 생성 개념과 같다고 보면 된다.
ex) Scanner sc = new Scanner();
Scanner라는 클래스의 객체, sc를 생성할때 new라는 키워드가 쓰인다.
이 순간에 객체가 생성 된다 => 힙영역에 이 객체를 위한 메모리가 할당된다.
이처럼
int array[ ] = new int[5];
이 때에 배열 array에 int형 5개 원소만큼 메모리 공간이 할당된다.
이렇게 배열이 생선된 상태에서 값이 0이나 null로 이미 초기화가 되어 있어서,
바로 이 배열 사용이 가능한다.
'다만 생성되지 않은 배열은 배열의 선언문에서만 초기화가 가능하다.'
이 문장의 뜻은
int array[ ];
array = {1,2,3};
이런 식의 초기화가 불가능하다는 뜻이다. 왜냐면 메모리 공간을 할당받지 못한 상태기 때문이다.
직접 시험해본 결과,
int array [ ] = new int[3];
array = {1,2,3};
이게 불가능했다. 내 추측으로는 배열을 생성하면 0으로 자동으로 초기화가 되어 있기 때문에,
원소들을 못바꾸는게 아닌가 싶다. 원하는 대로 원소를 지정하려면 배열 선언과 함께 초기화를
진행해야 하는 것 같다. 이 부분은 국비훈련에서 다음에 진도 나갈 때 더 알아봐야 겠다.
배열을 System.out.println를 이용해 출력하면 알아볼 수가 없는 형태로 출력된다.
배열을 화면에 출력해서 보고 싶다면 length와 for반복문을 통해 가능하다.
출력하면 이렇게 나온다.
다음 포스팅은 클래스 파트.