Dev/JAVA

배열

황빵 2024. 1. 22. 02:32

배열이 왜 필요할까?

  int student1 = 90;
  int student2 = 92;
  int student3 = 93;
  int student4 = 89;
  int student5 = 82;
  System.out.println("student1의 점수 : " + student1);
  System.out.println("student2의 점수 : " + student2);
  System.out.println("student3의 점수 : " + student3);
  System.out.println("student4의 점수 : " + student4);
  System.out.println("student5의 점수 : " + student5);

학생을 몇 명 더 추가한다면 변수를 더 추가해야하고 코드가 상당히 많이 늘어난다.

반복문으로 할 수 있을 것 같은데..?

→ 변수 이름을 어떻게 할껀데..? 해결할 수 없어 ..

배열 생성

  int students = new int[5]; // 1. 배열 생성

배열을 사용하려면 배열을 생성해야 한다. new int[5] 라고 입력하면 오른쪽 그림과 같이 총 5개의 int 형 변수가 만들어진다,

new는 새로 생성한다는 뜻이고, int[5]는 int 형 변수 5개라는 뜻이다. 따라서 int 형 변수 5개를 다룰 수 있는 배열을 새로 만든다는 뜻이다.

앞서 int student1, int student2 ... int student5 까지 총 5개의 변수를 직접 선언했다. 배열을 사용하면 이런 과 정을 한번에 깔끔하게 처리할 수 있다.

배열과 초기화

  • new int[5] 라고 하면 총 5개의 int 형 변수가 만들어진다.
  • 자바는 배열을 생성할 때 그 내부값을 자동으로 초기화한다.
  • 숫자는 0 로 초기화 된다.
  • boolean은 false 로 초기화 된다.
  • String은 null 로 초기화 된다.

배열의 참조값

int students = new int[5]; // 1. 배열 생성 
int students = x001;       // 2. new int[5]의 결과로 x001 참조값 반환 
studnets = x001;           // 3. 최종 결과

이런 참조값은 생성한 배열을 참조 할 수 있는 메모리 주소를 나타내는 값임

배열은 왜 참조형을 사용 할까?

-> 지금 까지 배운 변수 처럼 단순히 그안에 값을 넣고 사용하면 안되나..?

기본형은 모두 사이즈가 명확하게 정해져있다. 즉, 기본형은 선언과 동시에 크기가 정해진다. 따라서 크기를 동적으로 바꾸거나 할 수는 없다. 또한, 기본형은 사용할 값을 직접 저장해 비교적 더 빠르고 메모리를 효율적으로 처리한다.

int i ; // 4 byte
long l ; // 8 byte
double d; // 8 byte

배열은 참조형을 사용함으로써, 크기를 동적으로 할당할 수 있다. 즉, 크기의 유연성을 제공할 수 있다.또한, 참조형은 메모리에 저장된 배열이나 객체의 참조를 저장해 더 복잡한 데이터 구조를 만들고 관리할 수 있다.

int size = 100;  // 사용자가 입력한 값을 넣었다고 가정해보자. 
new int[size];   // 이코드가 실행되는 시점에 배열의 크기가 정해짐

배열의 생성, 선언 ,초기화

선언과 생성

  int[] students; // 배열 변수 선언
  students = new int[5]; // int 가 5개 넣을 수 있는 그릇을 만든 것!
  int[] students = new int[5]; // int 가 5개 넣을 수 있는 그릇 선언 + 생성

선언과 생성 그리고 초기화

  int[] students = new int[]{90, 80, 70, 60, 50}; // 배열의 선언 + 생성 + 초기화
  int[] students = {90, 80, 70, 60, 50}; // 배열의 선언 + 생성 + 초기화 이것도 되긴함 자바가 알아서 추론해줌
  int[] students; // 배열 변수 선언
  students = new int[5]; // int 가 5개 넣을 수 있는 그릇을 만든 것!

위의 코드는 똑똑한 자바가 알아서 추론해준다 .

  int[] students ;
  students = {90, 80, 70, 60, 50};

하지만 [오류] 이 코드는 자바가 추론하지 못한다.

728x90
반응형