프로그래밍언어/Java

[Java] 배열 선언 및 초기화 개념 - 완벽 정리

지이구 2021. 7. 8. 14:42

 

 

 

자바로 배열을 선언할 때는 다양한 선언 방법들이 존재한다

구조적으로 배열이 어떻게 선언되는지와

선언 및 초기화를 어떻게 하는지 상세하게 알아보고 정리하자 (●'◡'●)

 

 


🍳 기초배경

자바에서 배열은 객체이다

즉, 배열을 만든다는 것은 객체를 만든다는 의미와 같다

객체를 생성하면 객체동적 영역(Heap 영역)에 저장되고 저장된 영역의 주소를 변수가 갖게된다

그리고 이 변수 정적 영역(Stack 영역)에 저장된다

만약 정적 영역과 동적 영역에 대한 개념을 모른다면 일단 서로 다른 영역의 곳이라고 생각하자

객체 생성은 new를 통해 할 수 있고 생성한 객체의 주소를 참조 변수에 저장한다

int[] data = new int[10];

위의 int 배열의 선언을 예시로 들면

new int[10] int 요소가 10개 들어갈 수 있는 배열(객체)을 생성한다

int[] data data라는 배열 변수에 배열의 주소값을 저장한다

그리고 배열에 접근할 때는 배열 변수 data를 통해서 동적영역에 접근한다

 

🍳 배열을 선언하는 방법

배열을 선언하는 방법은 다양하다

차례대로 알아보고 주의할 점도 알아보자

 

// 0. 선언 방법
int[] intArray;
int intArray2[];
String[] strArray;
String strArray2[];

// 1. 먼저 선언하고 나중에 초기화
int[] intArr;
intArr = new int[8];

// 2. 선언과 동시에 초기화
String[] strArr = {'moon', 'earth', 'jupiter'};

 

 

🐾 선언 방법

선언하는 방법은 두가지가 있다

 

int[] intArr;
String[] strArr;
User[] userArr;

 

int intArr[];
String strArr[];
User userArr[];

 

 

🐾 먼저 선언하고 나중에 초기화

먼저 배열 변수를 선언한다

int, String 과 같은 Object 객체로 배열 선언이 가능하다

하지만 선언만 해두고 바로 사용할 수는 없다

자바 배열에 있어서 초기화는 굉장히 중요한 요소이다

배열 변수를 선언만 하고 생성, 초기화를 해주지 않으면 배열에 접근할 수 있는 포인터가 생성되지 않는다

그래서 Null인 배열에 접근하면 NullPointerException(널포인터 예외)가 발생한다

그러므로 반드시 초기화를 해주어야한다

초기화도 다양한 방법이 있는데 먼저 new 생성자를 이용하는 방법부터 알아보자

int 배열의 경우 new int[배열의개수] 처럼 작성하면 되는데

이렇게 초기화를 하면 배열의 인덱스가 생기고 이 주소값을 배열 변수에 넣어 사용할 수 있게 된다

 

intArr = new int[9];
strArr = new String[10];
userArr = new User[11];

 

 

🐾 선언과 동시에 초기화

배열 선언과 동시에 초기화 할 수도 있다

 

int[] intArr = {1, 2, 3, 4, 5};
String[] strArr = {'moon', 'earth', 'sun'};
User[] userArr = {'jisu', 'jigu', 'jitu'};

 

 

 


 

 

후속으로다가 다음에는 배열에 요소를 넣고, 빼고, 없애는 방법도 자세하게 포스팅해야겠다

728x90
반응형