배열은 같은 타입의 변수를 사용하기 편하게 하나로 묶어둔 것이다
- 배열을 사용하려면 int[] students;와 같이 배열 변수를 선언해야 한다
- 일반적인 변수와 차이점은 대괄호가 들어간다는 점이다
- 배열 변수를 선언한다고해서 아직 사용할 수 있는 배열이 만들어진 것은 아니다

- 배열을 사용하려면 배열을 생성해야 한다
- new int[5]라고 입력하면 오른쪽 그림과 같이 5개의 int형 변수가 만들어진다
- new는 새로 생성한다는 뜻이고, int[5]는 int형 변수 5개라는 뜻이다 따라서 int형 변수 5개를 다룰 수 있는 배열을 새로 만든다는 뜻이다
- new int[5]라고 하면 총5개의 int형 변수가 만들어진다
자바는 배열을 생성할 때 그 내부값을 자동으로 초기화한다- 숫자는 0, boolean은 false, String은 null로 초기화 된다

- new int [5]로 배열을 생성하면 배열의 크기만큼 메모리를 확보한다
int형을 5개 사용하면 4byte * 5 -> 20byte를 확보한다
- 배열을 생성하고 나면 자바는 메모리 어딘가에 있는 이 배열에 접근할 수있는 참조값(주소)을 반환한다
여기서 x001이라고 표현된 것이 참조값이다
- 앞서 선언한 배열 변수인 int[] students에 생성된 배열의 참조값을 보관한다
- int students변수는 new int[5]로 생성된 배열의 참조값을 가지고 있다
- 이 변수는 참조값을 가지고있다, 이 참조값을 통해 배열을 참조할 수 있다, 참조값을 통해 메모리에 있는 실제 배열에 접근하고 사용할 수 있다
- 배열을 생성하는 new int[5] 자체에는 아무런 이름이 없다 그냥 int형 변수를 5개 연속으로 만드는 것이다
인덱스
- 배열의 위치를 나타내는 숫자를 인덱스(index)라 한다
배열은 0부터 시작한다
- new int[5]와 같이 5개의 요소를 가지는 int형 배열을 만들었다면 인덱스는 0,1,2,3,4가 존재한다
- 배열의 요소를 5개로 생성했지만 인덱스는 0부터 시작한다
- 사용가능한 인덱스의 범위는 0~(n-1)이된다 따라서 students[4]가 배열의 마지막 요소이다
배열 값 대입
배열 값 읽기
- 배열을 사용하면 이렇게 참조값을 통해서 메모리상에 있는 실제 배열에 접근하고 인덱스를 통해 원하는 요소를 대입&찾기 할 수 있다
- 기본형: 값을 직접 넣을 수 있는 데이터 타입을 기본형이라 한다
- 선언과 동시에 크기가 정적으로 정해진다 따라서 크기를 동적으로 바꾸거나 할 수는 없다
- 사용할 값을 직접 저장한다
- 빠르고 메모리를 효율적으로 처리한다
- 참조형: 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 참조형이라 한다
- 크기를 동적으로 할당할 수 있다, 이런 것을 동적 메모리 할당이라 한다
- 메모리에 저장된 배열이나 객체의 참조를 저장한다
- 복잡한 데이터 구조를 만들고 관리할 수 있다