
new 로 heap에 생성, 길이는 고정, 0부터 인덱스로 접근.// 선언
int[] a; // 권장
int b[]; // 가능
// 할당
a = new int[5]; // 0으로 자동 초기화
// 선언 + 할당
int[] c = new int[10];
// 리터럴 초기화
int[] d = {1, 2, 3};
int[] e = new int[] {1, 2, 3};
// 길이
int n = c.length;
int[] arr = {10,20,30,40,50};
// for
int sum = 0;
for (int i = 0; i < arr.length; i++) sum += arr[i];
// 향상 for (값 **수정은 불가**)
for (int v : arr) System.out.println(v);
0, 실수: 0.0, 논리: false, 문자: '\u0000', 참조: null
arr == null상태에서arr.length접근 → NullPointerException
// 정변 배열 (모든 행 길이 동일)
int[][] m1 = new int[3][5];
// 가변 배열 (행별 길이 다름)
int[][] m2 = new int[3][];
m2[0] = new int[3];
m2[1] = new int[2];
m2[2] = new int[5];
// 리터럴 초기화
int[][] m3 = {
{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15}
};
for (int i = 0; i < m1.length; i++) {
for (int j = 0; j < m1[i].length; j++) {
System.out.print(m1[i][j] + " ");
}
System.out.println();
}
int[] a = {1,2,3};
int[] b = a; // 얕은 복사
b[0] = 99;
System.out.println(a[0]); // 99 (서로 영향)
int[] src = {1,2,3,4,5};
// 1) for
int[] c1 = new int[10];
for (int i = 0; i < src.length; i++) c1[i] = src[i];
// 2) clone (같은 길이)
int[] c2 = src.clone();
// 3) System.arraycopy(원본, 원본시작, 대상, 대상시작, 길이)
int[] c3 = new int[10];
System.arraycopy(src, 0, c3, 3, src.length);
// 4) Arrays.copyOf(원본, 새길이)
int[] c4 = java.util.Arrays.copyOf(src, 7);
성능:
arraycopy고성능 / 편의성:copyOf선호 /clone은 같은 길이만.
String[] suits = {"SPADE","CLOVER","HEART","DIAMOND"};
String[] ranks = {"2","3","4","5","6","7","8","9","10","JACK","QUEEN","KING","ACE"};
int si = (int)(Math.random() * suits.length);
int ri = (int)(Math.random() * ranks.length);
System.out.println(suits[si] + " " + ranks[ri]);
int[] scores = new int[5];
java.util.Scanner sc = new java.util.Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.print((i+1) + "번 점수: ");
scores[i] = sc.nextInt();
}
double sum = 0;
for (int s : scores) sum += s;
System.out.println("sum=" + sum + ", avg=" + sum / scores.length);
ArrayIndexOutOfBoundsException : 인덱스 범위 확인(0 ~ length-1).
가변 2차원은 각 행을 별도 할당해야 함.
값 변경은 향상 for로 불가 → 인덱스 for 사용.
유틸:
Arrays.toString(arr), Arrays.deepToString(mat)Arrays.fill(arr, val)Arrays.sort(arr)