배열 array
• 같은 타입의 여러 변수를 합쳐놓은 것 (다른타입을 같이 넣을 수 없음)
• 데이터공간 수정/변경이 어렵다
• 변수==단독주택, 배열==아파트
• 배열을 쓰고싶으면 선언과 생성이 필수
✔ 선언
변수 : 타입 변수이름;
배열 : 타입[] 변수이름; 타입 변수이름[];로도 가능 하지만 첫번째 타입을 많이씀
Ex) int[] score; == int score[];
Ex)
타입 : 배열에 저장될 데이터 타입으로 해당 타입의 데이터만 저장 기능
[] : 배열 선언
변수이름 : 배열의 이름, 배열에 대한 레퍼런스(참조) 변수
☑ 선언만으로는 배열에 저장할 수 있는 공간이 할당 되지 않으며, score라는 변수만 생김.
☑ 레퍼런스 변수는 배열 공간에 대한 주소값(레퍼런스값)을 가지며, 그자체가 배열은 아니다.
☑ 배열공간이 생성되지 않았으므로 선언만 할시, 레퍼런스 변수의 초기값은 null이다.
💡 레퍼런스 : 배열의 주소
💡 레퍼런스 변수: 배열의 실제 저장된 주소를 저장하는 변수
☑ 선언시, [] 안에 크기가 아직 저장되지 않은 상태
✔ 생성
변수 = new 타입[길이];
int[] score; //선언
// 위 선언한 score 변수에 맞게, 5개 저장공간 만들어보자
score = new int[5]; // 메모리 공간 생성 int크기만큼 방 다섯개 만들어줘
☑ socre : 배열의 레퍼런스 변수 : 실제 5개의 제이터들이 저장될 메모리의 주소를 저장하는 변수
☑ new : 메모리 생성 키워드
☑ int : 배열의 타입 : 실제 데이터 1개가 저장될 수 있는 크기(타입)
☑ [5] : 배열 방의 개수
❗ 배열은 new 키워드를 이용하여 메모리를 할당해야 비로서 사용가능하다.
◼ 배열 생성 후 새로운값 저장
◻변수[인덱스]=값;
✔ 초기화
• 생성시 처음 들어가는 값을 초기값이라 한다.
Ex)
int[] score = {10, 20, 30, 40, 50}; // int 타입 배열 방 5개짜리 만들어 값 순서대로 저장
int[] score = new int[]{10,20, 30, 40, 50};
☑ 주의할 점, 선언과 초기화를 따로 분리시키면 에러!
int[] score;
score = {1, 2, 3, 4, 5}; (x)
socre = new int[5];
socre[0] =1;
...
int[] score = new int[5];
✔ index 인덱스
• 프로그램에서는 숫자가 0부터 시작.
• 배열의 방은 0부터 시작하는 방번호가 매겨진다. > 자동으로
• 인덱스를 이용하여 배얄의 각각 방에 접근 가능. ( 저장, 꺼내기)
레퍼런스변수[인덱스];
score[0] >첫번째 방
💡 .length
◻ 배열의 길이(방의개수)를 알려주는 명령어
Ex)
int[] score = new int[5];
System.out.println(score.length) >> 5
• 배열은 연속되는 숫자를 방번호로(인덱스) 갖고 있어서 반복문과 함께 자주 쓰인다.
(for문의 i를 인덱스로 활용)
• 레퍼런스 치환과 배열 공유 : 레퍼런스 변수와 배열 공간(실제 데이터 저장공간)이 분리 되어있어서 다수의 레퍼런스 변수가 하나의 배열 공간을 가르키는 배열 공유가 가능
'basic > java 이론' 카테고리의 다른 글
| day08 - [객체지향,class,객체,변수의종류[클래스변수,인스턴스변수,지역변수]] (0) | 2021.04.30 |
|---|---|
| day07 - 다차원 배열(정방배열, 비정방배열) (0) | 2021.04.29 |
| day05 - 반복문 (do-while, for) (0) | 2021.04.27 |
| day04 - 조건문(if,switch), 반복문(while,for,do-while,foreaach), 보조제어문(break, coutinue) (0) | 2021.04.26 |
| day03 - 연산자 종류와 우선순위 (0) | 2021.04.23 |