1. 배열은 왜 필요할까?
변수와 데이터의 양이 거대하게 증가하면 그만큼 코딩해야 할 양도 증가한다.
이러한 변수는 변수명이 각각 다르기 때문에 반복문으로 해결할 수도 없다.
이렇게 같은 타입의 변수를 반복해서 선언하고 사용할 때 해결할 수 있는 방법으로 바로 '배열'을 쓸 수 있다.
2. 배열의 선언
배열: 같은 타입의 변수들을 사용하기 쉽게 한 번에 묶어둔 것
1) 배열 변수 선언
int [ ] students;
// 타입 뒤에 대괄호 [ ]를 작성해주어야 한다.
// 이렇게 생성한 배열 변수에는 (10,20과 같은 값이 아니라) 배열을 담을 수 있다.
2) 배열 생성
students = new int [3];
//3개의 int형 변수 공간이 메모리에 생성되고, 0으로 자동 초기화된다.
//new는 새로 메모리 공간에 생성한다는 뜻이다.
3) 배열의 초기화
//자바는 배열을 생성할 때 내부값을 자동으로 초기화한다.
//int는 0, boolean은 false, String은 null(없다는 뜻)으로 초기화한다.
4) 배열과 참조값
int [ ] students = new int [3];
new int [3]에서 int형 변수 공간을 메모리에 3개 생성하였으므로 4byte * 3 = 12byte만큼 메모리를 확보한다.
자바는 메모리에 생성된 배열에 접근할 수 있는 참조값(주소)을 students에 넣는다.
배열이 *참조형(Reference Type)을 사용하는 이유 : 기본형과 달리 크기를 메모리에 동적으로 할당가능해 더 복잡한 데이터 구조를 만들어 관리할 수 있다.
*기본형(Primitive Type) : 선언과 동시에 크기가 정적으로 정해지므로 더 빠르고 메모리를 효율적으로 관리할 수 있다.
int i ; //4byte, long l ; //8byte, double d ; //8byte
3. 배열의 사용
배열은 자료형의 종류를 말하는것이 아닌 특정한 자료형들의 집합을 의미한다.
또한 자료형 값들의 집합이므로 배열의 이름은 보통 복수형으로 쓴다.
1) 인덱스
배열의 인덱스는 0부터 시작하므로 우리가 3개의 int형 변수를 생성한 students 배열의 인덱스는 0,1,2이다.
2) 값 대입
students [0] = 90;
students [1] = 80;
students [2] = 70;
// 배열에 90 정수형 값 대입
// 변수에 있는 참조값 이용해 실제 배열에 접근해 대입
3) 배열 리펙토링
(기존 코드 기능은 유지하며 내부 구조를 개선해 가독성을 높이고 유지보수를 용이하게 하는 과정)
1. 세줄로 된 배열 프린트문 리펙토링

(1) 일반 for문을 이용한 리펙토링

(2) for-each문을 이용한 리펙토링 (컴파일 오류)

iter을 입력해 반복출력하려 하였지만 반복문 안에 들어있는 출력문에 i와 같이 증가하는 수가 들어있으면 사용할 수 없다.
2. 초기화 리펙토링

(1) 두줄 리펙토링

(2) 한 줄 리펙토링 & 오류 코드

'백엔드 > Java' 카테고리의 다른 글
| [Java 입문] 17. 메서드 (1) | 2025.08.06 |
|---|---|
| [Java 입문] 16. 2차원 배열, for-each문 (4) | 2025.08.05 |
| [Java 입문] 14. 스캐너 Scanner / println( ) (0) | 2025.07.31 |
| [Java 입문] 13. 형변환 (0) | 2025.07.31 |
| [Java 입문] 12. 지역 변수와 스코프 (0) | 2025.07.31 |