관리 메뉴

Developer Gonie

[1주차] 21. 1차원 배열, 선언방법 3가지 본문

K-DigitalTraining 강의/1. Java

[1주차] 21. 1차원 배열, 선언방법 3가지

이대곤 2022. 5. 19. 14:45

* 배열변수는 참조변수라고 명명함.

  배열변수를 출력하면 배열의 시작주소가 출력된다. (=참조변수에 참조값이 들어가있다고 얘기한다.)

  배열변수에는 배열의 시작주소(=참조값)가 들어있기 때문이다. 이 원리로 index로 배열 접근이 가능한 것이다.

   int형 배열이면 4byte를 건너뛰면 다음 원소가 있겠구나(연속된 메모리 공간을 가짐) 이런식으로 접근됨.

* 같은 타입의 데이터만 배열로 묶어서 사용할 수 있는게 기본이지만

   double 형 배열의 경우 이것보다 크기가 작은 int형 데이타는 들어올 수 있어서 다음과 같이 선언 가능.

   double [] b = {1.1, 2, 3.3}

   단, 실수형의 공간에 정수를 넣은 것이기 때문에 자동적으로 double(실수형)으로 형변환이 이뤄진다.

* 배열변수 선언시 []는 보통 데이터타입과 변수명 사이에 넣는다. 뒤에 넣어도 상관은 없음.

* 되도록이면 세번째 방법을 활용하는게 좋겠다. 사용자로부터 입력받은 걸로 초기화 하고자 한다면.

 

* 배열의 정의

  같은 타입의 데이터를 한 묶음으로 묶어서 관리하는 것이 배열이다.

  연속된 메모리 공간을 가지고 있으며 배열의 변수는 시작주소를 저장하고 있는 것이 특징이다.

코드(1차원 배열을 선언하는 3가지 방법)


public class Ex04_01_1차원 {
	public static void main(String[] args) {

		// 첫번째 방법
		int[] a1 = { 10, 20, 30, 40, 50 };

		// 두번째 방법
		int[] a2 = new int[] { 10, 20, 30, 40, 50 };

		// *세번째 방법 : 배열을 위한 공간부터 만들고 나중에 값을 채워넣는 방식. 0으로 초기화되어 있음
		//                사용자에게 입력받은 값으로 배열을 만들고 싶은 경우 이 방식을 이용한다.            
		int[] a3 = new int[5]; // 아직 데이터를 넣기 전이어서 기본적으로 0이 들어가 있음.
		a3[0] = 10;
		a3[1] = 20;
		a3[2] = 30;
		a3[3] = 40;
		a3[4] = 50;

		// 배열변수 a에는 첫 방의 주소가 들어가 있어서 index로 접근이 가능한 것이다.
		System.out.println("배열의 시작주소: " + a1);
		System.out.println("---------------");
		System.out.println("배열의 길이: " + a1.length);
		for (int i = 0; i < a1.length; i++) {
			System.out.println(a1[i]);
		}
	}
}

실행결과

배열의 시작주소: [I@73a28541          // 배열의 시작주소가 출력된 것임.
---------------
배열의 길이: 5
10
20
30
40
50
Comments