배열 변수는 참조 변수에 속함
배열도 객체이므로 힙 영역에 생성
배열 변수는 힙 영역의 배열 객체를 참조하게 됨
int[] intArray = new int[5];
int[][] scores = {{1, 2}, {3, 4, 5}};
new
연산자를 사용new
연산자를 사용해서 값 목록을 지정 public class Blog {
public static void main(String[] args) {
// 1차원 배열
int[] arr = {0, 1, 2, 3, 4};
int[] arr2;
arr2 = new int[5];
int[] arr3;
arr3 = new int[]{0, 1, 2, 3, 4};
// 다차원 배열
int[][] arr4 = {{0, 1}, {2, 3, 4}};
int[][] arr5;
arr5 = new int[2][3];
// int[][] arr6 = new int[필수입력][];
}
}
이런 형태의 배열에서 주의할 점은 정확한 배열의 길이를 알고 인덱스를 사용해야 함
arr4[0][2]
는 ArrayIndexOutOfBoundsException 을 발생시킴
int add(int[] scores) {···}
-----------------------------
int result = add( {95, 85, 90} ); // 컴파일 에러
int result2 = add( new int[] {95, 85, 90} );
==
연산자 대신 equals()
메소드를 사용해야 함 ( ==
연산자는는 객체의 번지 비교이기 때문에 문자열 비교에 사용할 수 없음 )public class Blog {
public static void main(String[] args) {
String[] strArray = new String[3];
strArray[0] = "Java";
strArray[1] = "Java"; // 문자열 리터럴이 같은 경우, 하나의 스트링 객체가 만들어짐
strArray[2] = new String("Java");
System.out.println( strArray[0] == strArray[1] ); // true ( 같은 객체를 참조 )
System.out.println( strArray[0] == strArray[2] ); // false ( 다른 객체를 참조 )
System.out.println( strArray[0].equals(strArray[2]) ); // true ( 문자열이 동일 )
}
}