본문 바로가기

Java

배열, 배열레퍼런스, 배열인스턴스

728x90

배열

배열 - 같은 종류의 메모리를 쉽게 쉽게 만드는 방법

문법 - 데이터타입[] 변수명 = new 데이터타입[개수];

ex) int[] arr = new int[5];

배열의 개수는 int 타입의 최대 값과 같다.

 

// 배열 사용 전
int i1, i2, i3, i4, i5;

// 배열 선언
int[] arr1 = new int[5];

 

배열 메모리에 접근

문법 - 배열변수[인덱스] = 값;

ex) arr1[0] = 100;

 

-배열의 인덱스는 0부터 시작.

-인덱스의 범위는 0 ~ (배열개수 - 1)

 

int[] arr1 = new int[5];

// 배열 메모리에 접근
arr1[0] = 100;
arr1[1] = 200;
arr1[2] = 300;
arr1[3] = 400;
arr1[4] = 500;

 

배열이 필요할 때: 같은 종류의 메모리를 많이 다룰 경우

 

int a1, a2, a3, a4, a5;
a1 = 100;
a2 = 90;
a3 = 80;
a4 = 70;
a5 = 60;

int sum1 = a1 + a2 + a3 + a4 + a5;

 

int[] arr1; 
arr1 = new int[5];
arr1[0] = 100;
arr1[1] = 90;
arr1[2] = 80;
arr1[3] = 70;
arr1[4] = 60;

int sum2 = 0; // 변수 선언

for (int item : arr1) {
  sum2 = sum2 + item;
}

// 밑에 있는 코드보다 편하다.
/*
for (int i = 0; i < arr1.length; i++) {
  sum2 = sum2 + arr1[i];
}
*/

 

배열 - 배열 레퍼런스와 배열 인스턴스

 

int[] arr1 = new int[5];

 

arr1 - 값이 아닌 메모리의 주소를 담는 변수 '레퍼런스'

new int[5] - new 명령은 사용할 메모리를 확보(연속된 5 개의 int 타입 메모리를 준비)

값을 저장하는 메모리를 "인스턴스"

배열 인스턴스의 주소를 다른 레퍼런스에 담을 수 있다.

 

int[] arr1;
arr1 = new int[5];

int[] arr2 = arr1;

// arr2와 arr1은 같은 배열 인스턴스를 가리킨다.
arr2[0] = 100;
    
// arr2를 통해 값을 저장한 후, arr1을 통해 값을 꺼낼 수 있다.
System.out.println(arr1[0]);

 

 

배열 레퍼런스와 null

 

int[] arr1;
arr1 = new int[5];
    
// 배열 레퍼런스를 초기화시키고 싶다면 null로 설정하라.
arr1 = null; // 0으로 설정. 즉 레퍼런스가 아무것도 가리키지 않음을 의미.

 

*레퍼런스가 배열 인스턴스를 가리키지 않은 상태에서 사용시 실행 오류!

'Java' 카테고리의 다른 글

변수의 종류  (0) 2021.09.29
변수  (0) 2021.09.29
예외처리  (0) 2021.09.19
오버로딩  (0) 2021.09.16
생성자는 언제 쓰나?  (0) 2021.09.14