공부/Java

자바 배열 1

Stair 2024. 8. 25. 16:19
반응형

배열이 필요한 이유는 같은 타입의 변수를 반복해서 선언하고, 반복해서 사용하는 문제를 해결하는 것이 바로 배열이다.

 

위와 같이 학생 5명의 점수를 출력하는 코드를 짠다고 가정하자.

위의 코드의 문제는 학생 수가 추가될 수록 계속 새롭게 변수를 선언해주어야 한다는 점이 문제이다./

 

student6 가 새롭게 추가된 모습

한두명의 학생이라면 괜찮겠지만 학생수가 100명이라면 일일히 해줄 수 없기에 배열을 사용한다.

(** for문으로는 해결이 불가능하다. 변수의 이름을 증감시킬 순 없기 때문이다.)

 

이러한 코드를 배열을 사용하여 다음과 같이 바꿔줄 수 있다.

 

 

 

int[] students;

는 배열 변수 선언을 하는 것이다.

배열을 사용하려면 위와 같이 배열 변수를 선언해야한다.

일반적인 변수와 달리 int[]처럼 타입 다음에 대괄호가 들어간다.

 

students = new int[5];

배열을 사용하려면 배열을 생성해야 한다.

new int[5]라고 입력하면 오른쪽 그림과 같이 총 5개의 int형 변수가 만들어진다.

new는 새로 생성한다는 뜻이고, int[5]는 int형 변수가 5개라는 뜻이다. 따라서 int형 변수 5개를 다룰 수 있는 배열을 새로 만든다는 뜻이다.

 

new int[5]로 배열을 생성하면 배열의 크기만큼 메모리를 확보하고, 자바는 메모리 어딘가에 있는 이 배열에 접근할 수 있는 참조값(주소)를 반환한다. (0x0100 과 같이 반환함)

 

참고로 배열을 생성하는 new int[5] 자체에는 아무런 이름이 없다. 그냥 int형 변수를 5개 연속으로 만드는 것이다.

 

 

풀어서 설명하자면

int[] students = new int[5]] //배열 생성

int[] students = 0x0100 /// new int[5]의 결과로 0x0100 참조값 반환

students = 0x0100

 

참고로 배열의 인덱스는 0부터 시작한다.

따라서 사용 가능한 인덱스의 범위는 0 ~ (n-1)이 된다. 그래서 students[4]가 배열의 마지막 요소이다.

 

인덱스 허용 범위를 넘어설 경우

 

 

out of bounds 에러가 발생하게 된다.

 

배열은 참조형이라 동적으로 사이즈를 변경할 수 있다.

 

배열이 참조형인 이유 : 참조형을 사용하면 동적 메모리 할당이 가능하여 동적으로 크기가 변해서 유연성을 제공할 수 있다. 참조형은 메모리에 저장된 배열이나 객체에 참조를 저장하기에 더 복잡한 구조를 만들 수 있다.

 

배열을 사용하면 반복문을 통해 표현을 효과적으로 할 수 있다.

 

 

또한 배열은 생성과 동시에 초기화도 진행할 수 있다.

더욱 더 간소화 된 코드는 다음과 같다.

 

 

 

 

 

 

 

 

반응형

'공부 > Java' 카테고리의 다른 글

김영한의 자바 입문 자바 배열 문제 1편  (0) 2024.08.25
자바 배열 2 (2차원 배열)  (0) 2024.08.25
java 여러가지 예문  (0) 2024.08.23
자바 Scanner  (0) 2024.08.22
자바 형변환  (0) 2024.08.22