본문 바로가기
Programming/JAVA(eclipse)

java 4일차_02. 배열( 1차원배열(1) )

by yoon9i 2024. 3. 13.

9. 배열 ( array )
- 용도: 데이터 저장.
- 특징: 
1) 참조형 데이터이다.
2) 참조형인 배열은 반드시 저장영역을 
    만들 때 new 를 이용한다. ( * )
3) 저장되는 메모리는 heap 이다.
4) 한번 생성된 배열은 크기 변경이 불가능하다.
    ( 크기를 늘리고 싶으면 배열을 다시 new 해야 한다. )
5) 배열에 저장되는 데이터는 기본형 및 참조형 모두 가능하다.
6) 1차원 및 다차원 배열 생성이 가능하다.

 

- 사용방법:
1) 배열 선언
- 문법: 데이터형 [ ] 배열명; // 배열명은 변수명과 동일하다.

     // 기본형인 int 저장용도인 배열
     int [ ] num; (일반적)    or      int num [ ];

      * 구별해야 되는 것
      int num; // num 의 데이터 타입? int, 기본형
         num 의 저장될수 있는 값? int인 정수
      int [ ] num2; // num2 의 데이터 타입? int [ ], 참조형
              num2 의 저장될수 있는 값? 주소값

2) 배열생성 ( new 이용 )
- 문법: 배열명 = new 데이터타입 [ 크기 ];

      num = new int [ 3 ]; 
      // 크기  3을 가진 배열이 heap 메모리에 생성 된다.
      // heap 에 생성되기 때문에 자동초기화가 된다.

3) 배열요소접근
- 문법: 생성된 배열의 인덱스(첨자) 사용해서 접근한다.
          인덱스는 0부터 시작한다.
          배열길이보다 항상 1이 작다. ( 0부터 시작하기 때문)
          배열길이: 배열명.length;

배열명[인덱스]; 
num[0]; // 첫번째 요소 접근

System.out.println(num[0]);
System.out.println(num[1]);
System.out.println(num[2]);
//System.out.println(num[3]); // 없는 요소 접근시 예외 발생 
// -> (java.lang.ArrayIndexOutOfBoundsException)

System.out.println(num.length); // >>> 3

 

package exam08_배열;

public class ArrayTest01_1차원배열 {

	public static void main(String[] args) {
		
		// 정수값 3개 저장하자. 10 20 30
		
		// 1. 배열선언
		// num 변수? 변수, 참조형변수, int 배열타입의 변수, 로컬변수(메서드안 - stack저장, 주솟값을 가짐)
		int [] num; 
		
		// 2. 배열생성 ( new 이용 )
		// 3개의 요소로 구성된 배열이 heap 메모리에 생성된다.( new 이용 -> heap 메모리 )
		// 초기화하지 않으면 자동초기화됨. (ex) int 면 0 으로 초기화 )
		num = new int[3];
		
		// 한번에 선언 과 생성
//		int [] num2 = new int[3];
		
		// 3. 배열요소접근
		System.out.println(num.length); // >>> 3
		System.out.println(num[0]); // >>> 0 ( 0으로 자동초기화 )
		System.out.println(num[1]); // >>> 0
		System.out.println(num[2]); // >>> 0
		
		// 4. 배열초기화
		num[0] = 10;
		num[1] = 20;
		num[2] = 30;
		System.out.println(num[0]); // >>> 10
		System.out.println(num[1]); // >>> 20
		System.out.println(num[2]); // >>> 30
		
		//System.out.println(num[3]); // 없는 요소 접근시 예외 발생 
		// -> (java.lang.ArrayIndexOutOfBoundsException)

	}// end main

}// end class

 

기본형 & 참조형

 

배열 선언과 생성