본문 바로가기
[JAVA]/[자바 기초]

[자바 기초] 배열

by 북방바다코끼리표범 2023. 8. 4.

복습

https://shins99.tistory.com/23

 

[자바 기초] static

복습 https://shins99.tistory.com/21 [자바 기초] C R U D 의 개념 복습 https://shins99.tistory.com/20 [자바 기초] this 키워드 복습 https://shins99.tistory.com/18 [자바 기초] 접근 제어 지시자, get(), set() 메서드 복습 https

shins99.tistory.com


💡 학습 목표 

1. 배열에 선언과 값을 넣는 방법 
2. 배열에 길와 인덱스 번호는 다르다 
3. 배열안에 들어가는 데이터 종류는 어떤것들이 있을까?

배열 (Array)

 

- 연관된 데이터들을 하나의 변수에 모아서 통으로 관리하기 위해 사용하는 리스트 자료 구조

- 여러개의 데이터를 하나의 변수에 저장하기 위한 것

// 배열 선언 (메모리 영역에 공간만 할당한다. 값 없음
int[] arr1;
arr1 = new int[2]; // 배열의 초기화는 반드시 크기를 먼저 지정해주어야 사용 가능
double[] arr2 = new double[2]; // 선언과 동시에 초기화

- 배열의 자료형과 배열 값의 자료형은 다름

    → 변수 자료형이나 반환 자료형 등을 입력할 때는 배열의 자료형을 입력해야 함

- 배열 선언시. 자동으로 자료형의 기본값에 따라 초기화 됨.

    → int :0, double 0.0, boolean : false, 참조자료형( String = null) 등

// 값을 넣는 방법 
		arr1[0] =  100;
		arr1[1] = 1000;
		// 인덱스에 순서은 0번부터 시작한다.
		
		System.out.println(arr1[1]);
		System.out.println(arr1[0]);
		
		// 주위 : 배열에 길이와(크기) 와 인덱스에 번호는 다르다 
		// 공식 -->배열에 인덱스에 번호는  n - 1 
		// System.out.println(arr1[2]);  <--- 오류 발생 
		
		arr2[0] = 10.0;
		arr2[1] = 20.0;
		arr2[0] = 0.0;
		System.out.println(arr2[1]);

- 기본 자료형 배열은 선언과 동시에 배열 크기만큼 메모리가 할당됨

- 객체 배열의 메모리 공간에는 heap 메모리에 대한 주소값이 할당됨

// for 문을 활용한 객체 배열 생성 형식
	for(int i = 0; i < 개수; i++) {
    	배열명[i] = new 클래스명(매개변수);
 }

인덱스

[] = 인덱스 연산자

-  배열크기가 n일 때, 인덱스는 0부터 생성됨 (n - 1)

 

배열의 길이 반환

배열명.length

- 배열의 길이와 실제 요소의 개수는 다를 수 있음

값이 부여되지 않은 인덱스의 값에 접근하면  NullPointerException에러 발생

 

정리
1. 인덱스의 크기는 n-1 개 이다.
2. 배열의 길이와 실제로 들어가 있는 값에 갯수는 다를 수 있다.
3. 배열에는 연관된 데이터만 통으로 모아서 관리할 수 있다.
4. 배열은 반복문과 함께 많이 사용한다.

5. 배열 사용 시 런타임 에러가 많으므로 null 값을 배제하는 방어적 코드 작성하자!