[Java] 3. 배열이란?

강은서·2022년 1월 19일
0

Java

목록 보기
4/9
post-thumbnail

배열이란?

동일한 타입의 연관된 데이터를 메모리에 연속적으로 저장하여 하나의 변수에 묶어서 관리하기 위한 자료구조이다.

배열 선언 및 초기화

배열을 선언하는 방법은 두가지 방법이 있다.

  1. 타입[] 변수
  2. 타입 변수[]
//크기 할당 & 초기화 없이 배열 참조 변수만 선언
int[] arr;
int arr[];

//선언과 동시에 배열 크기 할당
int[] arr = new int[5];

//기존 배열의 참조 변수에 초기화 할당하기
int[] arr;
arr = new int[5]; //5의 크기를 가지고, 초기값 0으로 채워진 배열이 생성된다.

기본 자료형 배열과 참조 자료형 배열(객체 배열)

//기본 자료형 배열
int[] arr = new int[10];

//참조 자료형 배열(객체 배열)
book[] library = new book[10];
//book이라는 클래스의 생성된 인스턴스를 담는 역할을 하는 객체 배열 library
  • 기본 자료형 배열
    • 자료값을 담는 배열
  • 객체 배열(참조 자료형 배열)
    • 배열도 객체이므로 heap영역에 생성되고, 배열 변수는 힙 영역의 배열 객체를 참조하는 참조 변수이다.
    • Book 클래스에서 생성된 인스턴스를 담는 역할을 하는 객체 배열 ⇒ library
    • library(객체 배열)은 직접 인스턴스를 기억하지 않고, 힙 영역에 저장된 객체의 주소값을 기억한다.
    • 객체 배열의 초기값은 null값이다.

객체 배열 사용법

//길이가 8인 자동차 객체 배열을 선언한다.
Book[] library = new Book[8];

//각 배열에는 아직 Null값만 존재한다.
//배열안의 자동차 클래스를 초기화 시켜줘야 한다.
for(int i = 0 ; i < library.length; i++){
	Book[i] = = new Book();
}

Array를 초기화 뿐만 아니라 Object도 초기화를 시켜줘야 한다.

배열 안에 있는 Class(Book class) 를 전부 초기화 시켜줘야 사용이 가능하며, 그냥 사용하게 되면 그 객체 배열은 해당 index에 등록된 reference가 없어 NullPointerException에러가 발생한다.

0개의 댓글