출처 : 자바의 정석
http://www.yes24.com/Product/Goods/24259565
https://cafe.naver.com/javachobostudy/20665
아래의 내용은 '자바의 정석'이라는 책의 내용을 간략하게 정리한 글입니다.
배열(array)
배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어지는 것
배열을 생성해야만 값을 저장할 수 있는 공간이 만들어진다.
타입[] 변수이름; //배열을 선언 (배열을 다루기 위한 참조변수 선언)
변수이름 = new 타입[길이]; //배열을 생성 (실제 저장공간을 생성)
인덱스(index)는 배열의 요소마다 붙여진 일련번호
인덱스(index)의 범위는 0 ~ 배열길이-1
ex) int[] testArray = new int[5];
배열은 한번 생성하면 길이를 수정 불가
배열의 길이를 수정하기 위해서는 더 큰 배열을 생성하여 기존 배열의 내용을 새로운 배열에 복사해야 한다.
배열을 다루기 위한 참조변수를 System.out.println()으로 출력하게 되면 배열의 주소('타입@주소')가 출력된다.
System.out.println(testArray); //[I@1db9742
단, println 메서드가 char배열은 예외적으로 구분자 없이 출력하도록 작성되었다.
char[] testArray = {'a','b','c','d','e'};
System.out.println(testArray); //abcde
배열의 복사는 for문으로도 가능하지만 System.arraycopy()를 사용하는 것이 효율적이다.
System.arraycopy(test, i, newTest, j, test.length);
//test[i]에서 newTest[j]으로 test.length개의 데이터를 복사
참조형 배열은 배열에 저장되는 것이 객체의 주소이다.
ex) String[] strArray = new String[5];
String 클래스 = char 배열 + 메서드
char chrArray = {'a', 'b', 'c'};
String str = new String(chrArray); //char array -> String
char[] temp = str.toCharArray(); //String -> char array