1. 배열(Array)
1) 배열은 왜 필요할까?
ㄴ 배열을 공부하기 전에 변수를 다시 생각해봐라.
변수는 어떤 하나의 값을 저장하는 공간이다. (변하는 수 아니다!)
그럼 하나의 값을 저장하지 않고 여러개의 값을 저장할 수 있는 방법은 없을까?라는 것에서 출발한다.
여기서 잠깐 ! 변수는 두가지 타입이 있다.
① 기본형 변수 : 실제 값(==리터럴)을 저장하는 변수
② 참조형 변수 : 주소값을 저장하는 변수
변수에 새로운 값을 저장하려면 이전에 있던 값이 사라지고 새로 저장한 값만 남아 있다.
그래서 기존 값을 남겨두면서 새로운 값을 저장하려면 새로운 변수를 생성해서 새로운 값을 저장하는 방법 밖에 없다.
만약 50개의 값을 저장하려면 100개의 변수를 선언하기 위해서는 아래와 같이 짓을 해야한다.
int i1 = 1;
int i2 = 2;
int i3 = 3;
˙
˙
˙int i50 = 50;
얼마나 쓸모 없는 짓이며, 만일 1000개가 넘는 값을 저장하려면 이짓을 천번 해야한다.
그래서 등장한 것은 배열 이다! 반복작업을 짧게 줄여줄 수 있기도 하다!
2) 배열이란 ?
ㄴ 같은 데이터 타입(자료형)의 여러 변수를 하나의 묶음으로 다루는 것 ( == 자료형 이전에 공부한 8개 타입!)
ㄴ배열을 선언한 변수는 참조변수이기 때문에 실제 값이 아닌 주소를 저장하고 있다는 점 꼭 기억해야한다.
① 배열 형태
int[ ] i = new int[숫자];
1) int [ ]
int 타입이다라고 생각했을텐데 [ ] 붙여있다면 int 배열 이며, 배열타입에 변수라고 생각하면된다.
2) new int [숫자]
new 연산자는 메모리의 heap영역에 공간을 만들어 두는 역할이며, 그 공간에 우리가 int [ ]에 대한 형태의 방을 만든다.
또한 [ ] 안에 들어간 숫자는 배열의 방의 개수를 의미한다.
new int [3];이었다면 총 3개의 변수(값)을 저장할 수 있는 공간을 만들겠다라는 뜻이며 이를 인덱스 (index)표현할 것이다.
ex) int [ ] i = new int [3];
heap영역에 3개의 빈방이 생성되고 i값에는 new가 생성해낸 메모리 공간의 주소를 가지고 있다는 뜻이다.
② 배열 선언 및 할당
int [] arr ; //stack영역에서 int [ ]자료형 참조형 변수 arr 선언
arr = new int [4] // heap영역에 int 자료형 4개를 묶으로 다루는 int [ ] 할당
int [ ] arr = new int [4] // 생성된 in[ ]주소를 arr를 대입하여 참조하는 형태를 만든다.
int [ ] arr = new int [4] > 배열의 길이는 4칸이다.
만약 배열의 길이를 출력하고 싶다면
System.out.println("배열의 길이 :" + arr.length);
arr[0] | arr[1] | arr[2] | arr[3] |
ㄴ 배열의 길이는 4지만 인덱스는 0부터 3까지다! (프로그래밍에서는 숫자가 항상 0부터 시작한다는 것을 기억하자.)
'ON > JAVA' 카테고리의 다른 글
8일차_ 2차원 배열 (0) | 2023.04.26 |
---|---|
8일차_배열 (0) | 2023.04.25 |
6일차_for중첩 반복문 /while 반복문 (0) | 2023.04.22 |
1주차_지금까지 이해하지 못한 것 개념이 확실하지 않는 것에 대해서 정리 (0) | 2023.04.21 |
5일차_반복문 (1) | 2023.04.20 |