JAVA

배열 개요 개념익히기

초코파이쩡 2023. 2. 5. 19:46
반응형

1)배열의 장점

배열이란? 동일한 타입의 변수들을 순차적으로 메모리에 저장한 후, 첫번째 변수의 메모리 주소값만 이용해 인접한 변수를 찾아서 사용할 수있는 구조를 배열이라고 한다

 

* 변수 a-> b -> c 순서로 접근해야 하는 경우 가장 빠른 접근 방법

왼쪽과 오른쪽의 차이는 저장된 구조로 봤을때 오른쪽이 데이터를 찾아가는 속도가 빠르다

* 배열을 쓰기 위해서 꼭 가지고 있어야 할것? 배열에서 주소값 계산할 때

1. 첫번째 변수의 주소를 알고 있어야 한다

2. 첫번째 변수에서 몇 번째에 떨어져 있는지 그 위치값만 알고 있으면 된다 그 위치값을 "인덱스" 라고 이야기한다

 

즉,  이 배열을 엑세스 해서 사용하기 위해서는 뭐가 필요하다?  "첫번째 주소" 랑 "몇번째 떨어져 있는지 인덱스정보" 라는게 필요하다

 

* 변수의 주소

(첫 번째 변수의 주소 값) + (인덱스 x 데이터 타입)

1. 배열이 있을 경우에 첫 번째 주소값이 Address 20 이라면

첫번째 데이터 a =10 은 인덱스가 0이라고 하고 

b = 3 은 인덱스 1이라고 하고

c = 8 은 인덱스 2라고 한다

 

 

 

 

 

2) 배열의 구현

* 배열을 사용하기 위한 작업 순서

(1) 배열을 메모리에 생성함

(2) 생성된 배열의 시작 주소 값을 변수에 저장함 (참조변수에 저장 : 참조변수란? 값이 저장되어 있는것이 아니고 배열의 흰 메모리에 있는 주소값을 가지고 있는 변수를 참조변수라 한다 즉, 배열의 주소값을 같는 참조변수를 만들어서 거기에 저장을 해야한다는 이야기 )

(3) 인덱스를 이용해 배열 안의 값을 접근함 (참조변수에서 인덱스를 통해서 내가 원하는 데이터를 찾아가면 된다)

 

*배열 생성

메모리에 동일한 타입의 변수 여러 개를 순차적으로 만듦

new 데이터 타입 [생성할 변수의 개수]

- new : 메모리에 무언가를 만들겠다

- int[5] : 무얼만들꺼냐? 4바이트 공간의 변수를 만들건데 몇개를 만들꺼냐면 5개를 만들겠다 그럼 5개짜리 배열이 메모리에 만들어진다'

 

 

 

 

 

*메모리 공간 생성

new int[5];

new int[5]; => 4바이트 짜리들이 만들어지고 5개가 만들어 진것을 볼 수 있다,  인덱스는 어떻게 부여? 첫번째 변수는 인덱스가 0 이기 때문에 0>1>2>3>4 이렇게 만들어진다

그래서 항상 인덱스는 0부터 매겨지기때문에 [5] 인 길이값에 

-1 을 하면 가장 마지막에 있는 4번인 인덱스 값을 구할 수 있다

 

 

 

*배열 주소

배열이 만들어진 시작 주소값을 변수에 저장함

데이터 타입[] 변수 이름 OR 데이터 타입 변수 이름 []

메모리에 배열을 만들었다면 이를 접근하기 위해서 는 

1. 데이터의 주소값을 어딘가에 저장해야 한다

2. new int[5]; 주소값을 저장하기위해 만들어놓은것

3. int[]arr 그시작주소값을 arr에 집어 넣어라 arr 참조 변수이다 근데 누구의 주소값을 가진다? 배열의 첫번째 데이타의 주소값을 가진다 즉 배열의 주소

 

*배열 주소

메모리 공간 생성

int[]arr = new int[5];

0 에 들어갈 시작 주소 값이 20이라고 치자

그럼 arr이라는 변수에는  메모리 주소값 20이 들어가고 20은 

누구를?  5개 짜리 인트 배열에 첫번째 위치를 가르키고 있다

 

 

*배열 사용

배열의 시작 주소 값을 가지는 변수와 인덱스를 활용함

변수 이름 [인덱스]

1. arr[1] => 변수이름[인덱스] 라고 하면 arr에 2번째 위치를 이야기하는것이고 거기다가 무얼 집어 넣어라? 123을 집어 넣어라 라는 이야기이기 때문에 123 데이터가 저장이 된다

2. 배열 안에 들어있는 데이터를 가지고 나올것이다 똑같이 배열의

참조 변수와 인덱스 가지고 접근하는데 arr[1]; 에 있는 1번째 있는 데이터를 선택을 하고 가져와서 어디에 집어 넣어라? int num 이라는 변수 안에다가 집어 넣어라

 

*배열 사용

메모리 공간 생성

arr메모리에서 누굴 찾아가? arr 20인 배열의 주소값의 배열을 찾아가고 인덱스가 1이니까 1을 찾아갔다

 

 

 

 

 

 

3) 자바 배열 종류

1차원 배열 : 전원주택 단지처럼 1호 다음에 2호,3호, 4호가 순서대로 위치하는 형태

나란히 배열이 되어있는데 이런걸 1차원 배열이라고 한다

행이 1개밖에 없는것

 

 

 

 

 

2차원 배열: 한 동 짜리 아파트 처러 층과 호수로 구성된 형태

동은 하나지만 층은 여러개이다 각층에 여러 가구들이 있는데 이게 바로 2차원 배열이다

 행이 여러개가 있고 열이 여러개가 있는것

 

 

 

 

 

 

3차원 배열: 여러 동 짜리 아파트처럼 여러 동의 층과 호수로 구성된 형태

 

 

 

 

 

 

 

 

 

 

가장 많이 쓴느것은 1차원 배열

반응형

'JAVA' 카테고리의 다른 글

1차원 배열 length 내장변수  (0) 2023.02.05
1차원 배열 사용법  (0) 2023.02.05
조건문 if문  (0) 2023.02.05
조건문  (0) 2023.02.05
실행순서 제어 주석문,어노테이션,API문서작성  (0) 2023.02.05