배열
-
여러개의 데이터를 한번에 생성할 때 사용한다.
-
자료형 변수명[] = new 자료형[데이터생성갯수];

-
배열은 참조 자료형이다.
int a[]=new int[12]의 경우 실제 데이터는 힙에 연속된 12개의 int 정수를 저장할 수 있는 공간이 생긴다.
- 1) new : 연산자, 힙에 데이터를 생성하라는 의미

- 변수 a에 배열을 생성하려면 고유한 주소를 가진 힙 메모리에 새롭게 배열을 생성한 다음 그 배열의 주소를 변수 a에 넣고 배열 이름 a를 통해 인덱스를 이용하여 고유 주소에 있는 값에 접근할 수 있다.
- 배열을 생성하면 스택에 변수 a가 생성되고 a의 내용은 배열의 시작 주소를 가리키는 힙의 메모리 주소가 된다.
2) [] : 주소 연산자, a가 가리키는 주소로 가서 해당 인덱스에 데이터를 읽어 오라는 의미이다.
- 시작 주소로 부터 다섯 번째 저장되어 있는 값을 읽어오려면 인덱스가 0부터 시작하므로 a[4]형태로 읽어오면 되고, 값을 변경하고 싶으면 a[4]=10;과 같이 기술하면 된다.
ex)
String arr3[] = {"강아지", "고양이", "붕어"};
arr3[2]="햄스터";
- 배열에 들어있는 데이터가 참조 데이터여서 arr3 배열 변수 안에 실제 데이터가 있는 배열의 주소가 들어있다.
- 배열에 있는 데이터의 주소를 찾아가면 실제 문자열에 해당하는 데이터가 있다.


- arr[2]의 주소가 0x12 붕어에서 0x13 햄스터 문자열의 주소로 변경되었다.
- 0x13의 메모리에 새로 햄스터 문자열을 저장한 후 해당 주소를 arr[2]에 넣었다.
연습 문제
0) 배열에 53,6,85,3,5를 넣은 다음 배열의 내용을 화면에 출력해 보자.

1) 배열 a[]={12,1,53,6,85,3}를 만든 다음에 배열의 모든 내용을 더한 값을 sum에
저장하여 출력하는 코드를 만들어 보자.


2) 배열 a에 1,2,3 을 넣은 후 배열 내의 모든 값에 2를 더한 값인 3,4,5로 변경한
다음에 배열의 내용을 화면에 인덱스 순서대로 출력해 보고 인덱스 역순으로 출력해보자.


3) 배열에 들어있는 값중 짝수만 화면에 출력하시오.


4) 인덱스가 홀수인 배열의 값을 출력하시오.


학습 소감
- 코드를 작성한 다음 메모리로 그리는 과정이 잘 이해가 되지않아 어려웠다. 이 부분을 집중적으로 공부해서 이해 해보려고 한다.