1. 배열 Array


1) 변수 variable

- 단, '하나의 값'을 저장할 수 있는 메모리 공간이다. 


2) 배열 

- '같은 타입의 데이터를 여러 개'를 저장할 수 있는 메모리 공간이다.

- index는 0부터 시작

- 배열은 단지 멤버 객체들을 가리키는 index와 주소만 관리

- 배열을 선언 후 초기화하지 않으면 null값을 가리킨다. 

- 배열은 한 번 초기화되면 길이를 늘리거나 줄일 수 없다.


3) 클래스

- '여러 타입의 데이터를 여러 개'를 저장할 수 있는 메모리 공간이다. 


4) 배열의 구조 

# 변수

int    num    =    10;


# 배열

1) int    arr[]    =

    int[]    arr    =    new int[3];

- 변수 arr는 참조형 변수이 된다.

- int형 메모리 공간이 3개가 있으므로, 4byte * 3 = 12byte

- 타입형 뒤에 [] 를 붙여쓰는 것을 추천한다! 



2) syso(arr); 

- arr의 주소값을 반환한다. 

- ex: [I@7852e922

- [ : 배열,    I : Integer,    e : 16진법



3) 참조 변수는 자동으로 해당 데이터 타입에 맞는 값으로 초기화된다. 

syso(arr[0]);    // 0

syso(arr[1]);     // 0

syso(arr[2]);    // 0


4)

   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package arrayex;
 
public class ArrayTest01 {
    public static void main(String[] args) {
 
        // 변수 
        int num1 = 10;                // 변수의 선언과 초기화 
        System.out.println(num1);    // 10
        
        int num2;                    // 변수의 선언
        num2 = 20;                    // 변수의 초기화
        
        // 배열 
        int[] arr = new int[3];            // 변수의 선언
        System.out.println(arr);
        // 주소값: [I@7852e922
        // [ : 배열, I : Integer, e: 16진법
        
        System.out.println(arr[0]);    // 0
        System.out.println(arr[1]);    // 0
        System.out.println(arr[2]);    // 0
        
        int[] arr2 = null;                // 참조형 변수의 선언과 초기화
        arr2 = new int[3];
        System.out.println(arr2);
        
    }
}
cs



5) arr.length : 배열 arr의 길이를 나타낸다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package arrayex;
 
public class ArrayTest02 {
    public static void main(String[] args) {
 
        int[] arr = new int[3];
        arr[0= 10;
        arr[1= 20;
        arr[2= 30;
        // arr[3] = 40; // java.lang.ArrayIndexOutOfBoundsException: 3
 
        // for(int i=0; i<3; i++) {
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
 
        System.out.println("배열의 길이: " + arr.length);
 
    }
}
cs

      



2. 변수의 초기값


boolean        : false;

char              : '\u0000';

byte, short, int: 0;

long                 : 0.0L;

float                 : 0.0F;

double             : 0.0;

참조형 변수       : null;


# ASCII 코드는 8bit로 구성되어 있어 총 256개의 숫자, 문자, 특수 문자를 사용할 수 있었지만, 영어가 아닌 문자를 표현하기에는 어려웠다. 

   그래서 이를 보완한 것이 유니코드인데, 세상의 모든 문자를 표현할 수 있는 문자 세트이다.

   총 16bit로 구성되어 65,536개의 문자들을 표현할 수 있다. 

   '\u'는 유니코드임을 명시적으로 보여주는 것이다. 



3. 배열의 사용


1) 명시적 초기화

int[] arr = new int[3];

- 3개라고 명시적으로 표기


2) 암시적 초기화

int[] arr = new int[] { 10, 20, 30 };

int[] arr = { 10, 20, 30 };

- 이미 값을 알고 있을 때 사용하는 것이 편함!

- 한 줄로 모든 데이터를 초기화 가능