기록

*8일차 본문

학원/강의

*8일차

pringspring 2022. 1. 28. 14:11

@배열

변수 : 값하나를 보관

배열 :  값 여러개를 보관

배열은 0부터 시작

 

1.배열선언 : stack영역에 변수(공간)을 생성

2.배열할당 : heap영역 배열을 실제 생성하고 그 주소값을 stack영역의 변수에 대입

3.사용 : 변수와 인덱스를 이용해서 값대입하거나 사용

 

int []은 참조형 변수 : 배열객체의 주소값 보관

int ≠ int [ 4byte]

 

 

//1.배열변수 arr 선언

//주소값 없으면  null

int[] arr;

 

//2. 배열 할당

//heap영역은 "주소값으로만" 참조할수 있다.

//heap영역에 3개를 담을수 있는 공간을 할당

//주소값을 arr에 대입

arr = new int[3]

 

//타입별 기본값 : 타입별 0에 해당하는 값(ex. int 0 , double 0.0 , char' ')

//call stack영역과 달리 heap,static영역의 변수공간은 타입별 기본값으로 초기화됨

//3.배열값 대입

arr[0]=10

arr[1]=20

arr[2]=30

arr[3]=40

 

//4.배열사용

System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);

System.out.println(arr[3]);

 

	/**
	 * 관리할 데이터의 규칙이 있다면, 값 대입도 반복문 사용
	 * 
	 */
	public void test3() {
		//배열변수선언 및 할당
		char[] alphabet = new char[26];
		for(int i = 0 ; i<alphabet.length; i++) {
			alphabet[i] = (char)('A'+i); 

		}
		//foreach : 향상된 for문
		// 하나의 요소를 담은 변수 : 반복접근할 배열
		for(char ch : alphabet) {
			System.out.println(ch);
		}
		인덱스 사용X
	}

 

*배열 초기화  : 배열 생성 및 할당, 요소별 값세팅 한번에 처리

** foreach문

for(배열요소를 담을 변수선언 :  반복접근할 객체) {

    //요소의 개수만큼만 반복

}

 

*String[] 참조형 타입의 기본값은 null

*배열 크기는 변경 불가

*배열(객체)의 삭제는 주소값을 null로 변경 → Garbage Collerctor

*hashCode : 객체를 관리하기 위한 고유값 key

 


@배열 복사

1.얕은 복사

: 참조 주소값만 복사. heap의 배열객체 공유

 

2.깊은 복사

: 동일한 값을 가진 배열객체를 heap에 하나 더 생성 →  주소값 다름 (다른 객체인것)

a.직접복사

b.System.arraycopy

c.clone

 

'학원 > 강의' 카테고리의 다른 글

*10일차  (0) 2022.02.04
*9일차  (0) 2022.02.03
*7일차  (0) 2022.01.27
*6일차  (0) 2022.01.26
*5일차  (0) 2022.01.25