package pm;

public class Exam6 {

	public static void main(String[] args) {
	/*
	 * 배열의 특징
	 * 먼저 기본 자료형과 참조 자료형에서 변수를 복사할 때를 생각해보자
	 * 대입 연산자(=)를 사용해서 변수가 복사되는 과정을 이해해보자.
	 * '변수의 복사'라는 말이 무엇일까?
	 * 바로 변수에 포함된 메모리 값이다.
	 * 그런데 기본 자료형과 참조 자료형의 저장되는 메모리 값의 의미가 다르다.
	 * 따라서 둘 사이에 차이가 발생된다.
	 * 
	 * 기본자료형을 살표보자.
	 * 기본자료형은 메모리에 실제 데이터 값을 저장함
	 * 따라서 기본 자료형 변수를 복사하면 실제 데이터 값이 한 개 더 복사됨
	 * 이후 복사된 값을 아무리 변경해도 원본 값은 아무런 영향을 받지 않음 < 두 개가 별개가 되기 때문
	 */

//	int a = 3;
//	int b = a;
//	b = 7;
//	System.out.println(a);
//	System.out.println(b);
	
	/* 이제 참조 자료형을 살펴보자.
	 * 참조 자료형은 실제 데이터 값이 아닌 저장된 위치값을 가지고 있음
	 * 따라서 참조 자료형 변수를 복사하면 실제 데이터가 복사되는 것이 아니라
	 * 실제 데이터의 위치값이 복사됨
	 */

//	int[] a = {3,4,5}; // int 배열을 선언 및 초기화
//	int[] b = a;
//	b[0] = 7;
//	System.out.println(a[0]);
//	System.out.println(b[0]);
		
		/* 하나의 참조 변수를 이용해서 데이터를 수정하면 다른 참조변수가 가르키는
		 * 데이터도 변하게 됨
		 */
		
		// 배열의 길이
		// (배열이름).length > 배열 참조 변수가 가르키는 곳에 배열 객체가 있고 그 배열의 갯수를 가져와라
		int[] a = new int[] {3,4,5,6,7};
		System.out.println(a.length); // 배열의 갯수를 뽑아내라, 배열의 갯수 5개
		
		for(int i = 0; i < a.length; i++) {
			System.out.println(a[i]);
		}
	}

}
