int [] a = new int[10];
int a[] = new int[10];
ex>
class arNew{
public static void main(String[] args){
int[] a = new int[10];
int b[] = new int[10]l
int i;
for(i=0;i<5;++i){
a[i] = (i+1)*10+1;
b[i] = (i+1)*100 +5;
}
//run-time error
for(i=0;i<15;i++){
System.out.println(a[i]+" "+b[i]);
}
}
}
int a[]={1,3,5,7,9};
a.length
배열의 길이 반환(number of elements)
array copy using assignment(얕은 복사)
b=a;
하지만 이 방식은 새로운 공간을 생성한 것이 아닌 b에다가 a의 메모리 주소를 넘겨준 것이기 때문에 a 배열을 사용하여서 값을 바꾸면 b의 값 역시 함께 바뀌게 됨
class arCopy{
public static void main(String[] args){
int a[] = {11,13,15,17,19,21,23};
int b[] = new int[a.length];
int i;
b=a;
for(i=0;i<a.length;i++){
System.out.println(a[i]+" "+b[i]);
}
}
}
b는 단순히 a의 메모리만을 가리키게 된다.
그렇기에 b에 할당한 메모리 공간은 큰 의미가 없는 것이 된다.
그렇다면 b에 할당한 메모리 공간은 어떻게 될 것인가? JAVA는 이를 자동으로 해제해주는 가비지 컬렉터
이 등장하여 이를 해제해 준다.
ex>
class arCopy{
public static void main(String[] args){
int a[] = {11,13,15,17,19,21,23};
int b[] = new int[a.length];
int i;
System.arraycopy(a,1,b,2,3);
for(i=0;i<a.length;i++){
System.out.println(a[i]+" "+b[i]);
}
}
}
결과물은 a의 1번 위치에서 3개를 골라 b의 2번 위치부터 붙여 넣는다.
int a[][] = new int[3][4];
int[][] a = new int[3][4];
a.length => 3(row) (y축)
a[0].length => 4(column) (x축)
int a[][] = {{10,11,12},{20,21,22},{30,31,32},{40,41,42}};
ex>
class arYeeChaWon {
public static void main(String[] args)
{
int a[][] = { {10,11,12},
{20,21,22},
{30,31,32},
{40,41,42} };
int i, j, hab;
System.out.println("a.length : " + a.length);
System.out.println("a[0].length : " + a[0].length + '\n');
for (i=0 ; i<a.length ; i++)
{
hab = 0;
for (j=0 ; j<a[0].length ; j++)
{
System.out.print(a[i][j] + " ");
hab += a[i][j];
}
System.out.print(" " + hab + "\n");
}
}
}
boolean[][][] a = new boolean[3][4][5];
int[][][] a = {{{1,2},{3,4}},{{5,6},{7,8}}};