같은 타입의 변수를 반복해서 선언하고 반복해서 사용하는 문제를 해결
1. 변수 선언
int[] students; // 와 같이 배열 변수를 선언해야한다.
2. 배열 생성
students = new int[5]; // 배열 생성
new int[5] 라고 입력하면 총 5개의 int형 변수를 담을 공간이 생성이 된다.
new int[5]로 총 5개의 int형 변수값이 만들어지지만, 자바는 배열을 생성할 때 그 내부값을 자동으로 초기화한다.
따라서 모두 0의 값으로 저장이 된다.
숫자는 0, boolean은 false, String은 null, 다른 참조값들은 null
3. 배열 참조값 보관
students = x001; // 배열 참조값 보관
이 students는 배열의 위치값만 저장되어 있으며 배열 자체가 아니라는 것을 명심하자
new int[5]로 배열을 생성하면 배열의 크기만큼 메모리를 확보한다
배열을 생성하고 나면 자바는 메모리 어딘가에 있는 이 배열(new int[5])에 접근할 수 있는 참조값(주소)(x001)을 반환한다.
그러한 배열의 참조값을 int[] students 변수에 배열의 참조값을 보관하는 것이다.
인덱스
배열에 인덱스 번호를 통해 배열 안의 값을 사용할 수 있다.
인덱스 번호는 0번부터 시작한다.
int[] students = {1,2,3};
System.out.println(students[0]);
기본형 vs 참조형
배열은 동적으로 사이즈를 변경할 수 있다.
기본형은 선언과 동시에 크기가 정해진다.
배열은 크기를 동적으로 바꿀 수 있으며 이것을 동적 메모리 할당 이라고 한다.
기본형은 선언과 동시에 사이즈가 정해지지만, 참조형을 사용하면 동적으로 크기가 변해서 유연성을 제공할 수 있다.
기본형은 사용할 값을 직접 저장하지만 참조형은 메모리에 저장된 배열이나 객체의 참조를 저장한다.
int[][] arr = new int[2][3] // 2차원 배열 선언
행(row), 열(col)로 구성된다.
위에서 선언한 2차원 배열은 2행 3열의 int형 배열을 선언한 것
가변배열
int[][] array = new int[3][];
array[0] = new int[2];
array[1] = new int[4];
array[2] = new int[3];
문자열 = 문자 배열
char과 다른 String만 가지고 있는 기능들
메서드 | 응답값 타입 | 설명 |
---|---|---|
length() | int | 문자열의 길이를 반환한다. |
charAt(int index) | char | 문자열에서 해당 index의 문자를 반환한다. |
substring(int from, int to) | String | 문자열에서 해당 범위(from ~ to)에 있는 문자열을 반환 (to는 범위에 포함 x) |
equals(String str) | boolean | 문자열의 내용이 같은지 확인한다. 같으면 true 다르면 false |
toCharArray() | char[] | 문자열의 문자배열(char[])로 변환해서 반환 |
new String(char[] charArr) | String | 문자배열(char[])을 받아서 String으로 복사해서 반환 |