728x90
배열이란?
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
변수로 선언하는 경우
int score1, score2, score3, score4, score5;
5개의 점수가 연속되지 않은 주소 메모리에 생성됨
배열로 선언하는 경우
int[] score = new int[5];
배열은 각 저장공간이 연속적으로 배치되어 있음
배열의 선언 & 생성
//타입[] 변수명 = new 타입[크기];
int[] score = new int[5];
선언과 생성을 동시에 하는 방법으로 주로 이렇게 선언한다.
배열의 선언
두가지 방법으로 선언이 가능함.
//타입[] 변수이름;
int[] score;
//타입 변수이름[];
int score[];
생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어 짐
배열의 생성
배열 선언 시 , 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고, 배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어짐.
score = new int[길이];
생성되는 과정
배열의 초기화
배열은 생성 동시에 모든 값이 0으로 초기화 된다.
원하는 값을 넣으려면 다음과 같이 넣어준다.
score[0] = 50;
규칙이 있는 경우 for문을 사용하면 편리하다.
선언과 동시에 초기화가 가능하다.
int[] score = new int[]{ 50, 60, 70, 80, 90};
//new int[] 생략가능
int[] score = { 50, 60, 70, 80, 90};
new부분은 생략이 가능하지만, 선언과 동시에 초기화하지 않는 경우(선언과 생성을 따로 하는 경우)는 생략할 수 없다.
길이가 0인 배열
int[] score = new int[0];
int[] score = new int[]{};
int[] score = {};
배열의 크기(길이)
배열의 길이는 JVM이 별도로 관리하며,
배열이름.length
를 통해 접근이 가능하다.
변경 불가능한 상수 값이다.
범위 : 0 ≤ 배열의 크기 ≤ int타입의 최댓값 (2,147,483,647)
배열의 크기 변경(배열의 복사)
배열의 크기는 변경 불가능한 상수 값이므로, 배열의 크기를 늘리고 싶은 경우에는,
- 더 큰 배열을 새로 생성
- 기존의 배열의 내용을 새로운 배열에 복사
다음과 같은 방법을 사용해야 한다.
int[] arr = {1, 2, 3, 4, 5};
int[] tmp = new int[arr.length*2];//길이가 2배인 배열 생성
for (int i = 0 ; i < arr.length ; i++)
tmp[i] = arr[i];
arr = tmp;
메모리에서는 다음과 같은 과정을 거친다.
int[] arr = {1, 2, 3, 4, 5};
int[] tmp = new int[arr.length*2];//길이가 2배인 배열 생성
for (int i = 0 ; i < arr.length ; i++)
tmp[i] = arr[i];
arr = tmp;
728x90
'LANGUAGE > JAVA' 카테고리의 다른 글
[Java] 제어자(modifier) (0) | 2021.09.30 |
---|---|
[Java] 열거형(enums) (0) | 2021.09.22 |