KoreaIt Academy/JAVA

7. JAVA 배열 (Array)

hongeeii 2021. 7. 13.
728x90
반응형

배열이란 같은 타입의 값들을 한번에 저장하기 위한 방법으로, 같은 타입의 변수들을 여러개 선언하지 않고 

사용하기 위해 효율적으로 값을 관리하는 방법입니다.


1. 배열의 목적


   변수를 여러 개 선언하면 이름도 여러 개 생깁니다.

   이 때 각 저장공간을  관리하기가 불편하죠.

   따라서 n칸 배열을 한 번 선언하면 저장공간도 여러 개 생기고, 이름도 한 개이기 때문에 관리하기 편합니다.

   규칙성이 없는 값에 규칙성을 부여하기 위해서입니다.

 

2. 배열의 선언

   자료형[] 배열명 = {값1, 값2,...}; //어떤 값을 넣을 지 알 때 사용
   자료형[] 배열명 = new 자료형[칸수];//어떤 값을 넣을 지 모를 때 사용
   자료형[] 배열명 = null; //몇 칸 만들 지도 모를 때
   배열명 = new 자료형[칸수];

   ※new : Heap 메모리에 할당
   ※자바에서 배열은 항상 Heap메모리(동적 메모리)에 할당되기 때문에
     메모리 상, 동적배열만 존재합니다.

 

3. 배열의 구조

   arData라는 이름의 저장공간은 한 개 만들어지며, 여기에는 한 개의 값만 담을 수 있습니다.

   5개의 값을 담기 위해서는 5칸이 필요하며, 이는 Heap메모리에 할당됩니다.

   5칸의 저장공간 중 첫번째 저장공간의 주소값이 arData 저장공간으로 들어가며, 

   다음 주소에 접근하기 위해서 +n을 합니다.


   예를 들어, arData + 2는 1이라는 값이 담긴 저장소의 주소값이 되며,
   *(arData + 2)는 해당 주소에 가서 읽어온 1이라는 값이 됩니다.

   JAVA에서는 직접 주소에 접근하는 연산자가 없기 때문에 위와 같은 식을 []로 치환하여 사용하며,

   arData[2]로 사용합니다.
   각각의 방 번호는 index라고 부르며, 배열은 시작주소를 가지고 있기 때문에 인덱스 번호는 항상 0부터 시작됩니다.

   

4. 2차원 배열

2차원 배열은 왜 사용될까요??

그 이유는!! 1차원 배열을 여러 개 선언할 때 관리하기 힘들기 때문에 2차원 배열을 한 번 선언합니다.

하지만 2차원 배열은 메모리 낭비가 심하므로 선호하지 않는 단점이 있습니다.

 

※ 2차원 배열의 선언 방법

※ 2차원 배열의 구조

arr이란 이름의 2차원 배열이 있을 때, arr은 2차원 배열의 주소값이고,

1차원 배열인 arr[0]은 0행의 주소값, arr[1]은 1행의 주소값을 가지고 있습니다.

 

따라서 2차원 배열의 길이는 위와 같이 나오게 됩니다.


이상으로 java의 1차원 배열, 2차원 배열을 알아보았습니다. 

728x90
반응형

추천 글