배열 문제

1차원 배열

public class Array {
    public static void main(String[] args) {
        int[] students;   // 배열 변수 선언
        students = new int[5];    // int형이 5개 연결되어있는것. 5개의 int를 넣을 수있음

        //변수 값 대입
        students[0] = 90;    // 배열은 0부터 시작
        students[1] = 80;
        students[2] = 70;
        students[3] = 60;
        students[4] = 50;

        //변수 값 사용
        System.out.println("학생1 점수: "+students[0]);
        System.out.println("학생2 점수: "+students[1]);
        System.out.println("학생3 점수: "+students[2]);
        System.out.println("학생4 점수: "+students[3]);
        System.out.println("학생5 점수: "+students[4);
    }
}
int[] students; // 1. 배열 변수 선언 (변수인데 배열을 담을 수 있는 변수)
students = new int[5]; //2. 배열 선언

배열을 사령하려면 배열 변수를 먼저 선언해야함.

배열 변수는 대괄호 사용 [ ]

배열 변수는 단순 값이 아닌 배열만 담을 수 있음

배열은 생성시 자동으로 초기화한다.

배열이 생성되고나면 참조값(x001)으로 바뀜

int[ ] = 0 / bololean[ ] = false / String[ ] = null

인덱스: [ ] 대괄호 안의 숫자

인덱스 배열은 0부터 시작한다.

그러므로 인덱스의 범위는 0 ~ (n-1)

ex) new int[5] = [0] [1] [2] [3] [4] 까지 존재 / [5]를 사용하면 오류 발생

배열의 기본형vs참조형

기본형(Primitive Type) 참조형(Reference Type)
int, long, double, boolean과 같이 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입. int[ ] students와 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입.
선언과 동시에 크기가 정해진다. 크기를 동적으로 바꾸거나 할 수 없다. 크기를 동적으로 할당할 수 있다. Scanner를 사용해서 입력에 따라 size변수의 값이 변하고, 생성되는 배열의 크기도 달라질 수 있다. → 동적 메모리 할당
사용할 값을 직접 저장해서 빠르고 메모리를 효율적으로 처리함 메모리에 저장된 배열이나 객체의 참조를 저장(더 복잡한 데이터 구조를 만들고 관리할 수 있음)

배열 리팩토링

기능은 똑같은데 내부 코드를 개선하는 것