04. 배열(Array) (1)

bbsm·2022년 12월 15일
0

학원 수업 복습

목록 보기
5/36

< 배열 메모리구조

▶ 배열

: 같은 자료형의 변수를 하나의 묶음으로 다루는 것. (자료구조)
:묶여진 변수들은 하나의 배열명으로 불려지고 구분은 index를 이용함
(index는 0부터 시작하는 정수)

배열의 특징
1. 한가지 자료형만 저장 가능하다
2. 여러 값을 저장할 수 있다
3. 한 번 크기를 지정하면 변경 불가능하다

▶ 배열 초기화

1. 인덱스를 이용한 초기화
arr[0] = 1;
arr[1] = 2;

2. for문을 이용한 초기화
for(int i = 0; i < arr.length; i++){
arr[i] = i;
}

*index가 순차적으로 증가함에 따라 초기화 할 리터럴 값이 규칙적이라면 반복문을 통해 배열 초기화 가능

3. 선언과 동시에 초기화
int[] arr = {1, 2, 3, 4, 5};
int[] arr = new int[] {1, 2, 3, 4, 5};
String fruit[] = {"사과", "포도", "참외"};
.
.

▶변수 vs 배열

1-1 변수 선언
int num;

이렇게 선언하고 나면 Stack 영역에 int 자료형을 저장 할 수 있는 공간 4byte를 생성(할당)하고 그 공간에 num이라는 이름을 부여

1-2 변수 대입
num = 10;

생성된 num이라는 변수 공간에 10을 대입

1-3 변수 사용

System.out.println("num에 저장 된 값 : " + num);
num이 작성된 자리에 num에 저장 된 값을 읽어와서 출력

2-1 배열 선언
int[] arr;

어떤 자료형을 만들지에 따라 앞에가 다름
Stack영역에 int 자료형 공간을 4byte 할당하고 그 공간에 arr이라는 이름을 부여
해당 변수는 참조형으로 안에 값이 있는게 아니라 주소값(4byte)만을 저장 할 수 있음

2-2 배열 할당
arr = new int[3];

new : "new 연산자" 라고 하며, Heap 메모리 영역에 새로운 공간(배열, 객체)을 할당
int[3] : int자료형 변수 3개를 하나의 묶음으로 나타냄
new int[3] : Heap영역에 int 3칸짜리 int[]생성 (할당)
생성된 int[]에는 시작주소가 지정된다

2-3 배열 요소 값 대입
arr[0] = 10;
arr[1] = 50;
arr[2] = 1000;

arr은 int[] 참조형 변수이지만
arr[0]~[2] 자료형 변수이기때문에 정수 값을 대입할 수 있다

2-4 배열 요소 값 읽어오기
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);

▶ 배열 복사

얕은 복사
: 객체의 주소 값만 가져와 참조형 변수에 저장하고 하나의 객체를 두 변수가 참조하는 것

int[] arr1 = new int[4]
int[] arr2 = arr1;

깊은 복사
: 새로운 배열 객체를 생성하여 기존 배열의 데이터를 복사하는 것

for(int i = 0; i < arr1.length; i++) {
arr2[i] = arr[i];
}
System.arraycopy(arr1, 0, arr1.length);

arr2 = Arrays.copyOf(arr1, arr1.length);

arr2 = arr1.clone();

0개의 댓글