1.8 Arrays

Single-dimensional Array

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};

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]);
        }
	}
}

https://images.velog.io/images/tonyhan18/post/9a74170b-111f-4878-a69e-2d553cb56058/image.png

https://images.velog.io/images/tonyhan18/post/282cf325-2810-4ae3-98a9-2a41c6c2413f/image.png