2013년 10월 23일 수요일

[JAVA강좌]자바 배열(Java Array), 배열이란, 배열선언, 배열생성

[JAVA강좌]자바 배열(Java Array), 배열이란, 배열선언, 배열생성
 
- 배열이란 변수의 집합 ,같은 데이터 타입의 변수를 한꺼번에 많이 저장하는 저장소 이다.
- 배열의 크기는 배열의 첨자로 결정한다.
- 배열의 메모리는 연속적으로 잡힘
- 배열의 이름(변수)은 연속된 변수들을 참조하기 위한 참조 값
- 배열도 객체이므로 Heap에 메모리가 할당되며 Object클래스의 메서드 이용가능하다
- 동일한 자료형을 갖는 자료의 배열
 
- 배열 선언(주의 : 선언할때 크기 명시 안 한다.)
int[] a; (혹은 int a[];)
 
- 배열에 Access하기 위한 첨자는 int형, long인 경우엔 캐스팅을 해야 한다.
 
- 배열 생성
a = new int[3];
int[] a = {1, 2, 3};
int[] a; a = new int[] {1, 2, 3};
 

Int[] onj = new int[10]
데이터 타입 : int[10]
배열의 이름 : onj
메모리 : int 4byte * 10
 
- 배열초기화 예
 
선언 후 값할당

Int[] mydream = new int[4];
Mydream[0] = 100;
Mydream[1] = 200;
Mydream[2] = 300;
Mydream[3] = 400;

선언과 동시 값할당

int[] onj[] = new int[]{100, 200, 300};
Int[] onj[] = {100, 200, 300};

배열 길이
a.length
 
배열의 재사용
int[] a = {1, 2, 3};
a = new int[50];  //이때 이전의 배열a의 내용은 버려지며 새로운 메모리 공간이 할당된다.

[예제]
 
class ArrayTest {
    public static void main( String[] args ) {
         int[]     a = {1, 2, 3};     // int형 배열 a선언  및  값 할당
         int       a2[];              // int형 배열 a2 선언
         a2 = new int[] {7, 8, 9, 10, 11, 12};  // 배열a2 값할당
        
         //배열 복제 a배열 1,2,3을  a2배열10, 11, 12 자리로 복사
         //0 : a배열의 0번째부터 즉 1부터, 3 : a2뱌열의 배열인덱스가 3인곳부터, 3 : 3개를 복사
         System.arraycopy(a, 0, a2, 3, 3); 
         System.out.println( a.length );    // 3
        
         for(int i = 0; i < a.length; ++i)
            System.out.print( a[i] + " ");   // array
  
   // 스트링 객체의 참조값의 배열 생성
         String[] as = { "Education", "of", "OnJProgramming", };
         String[] as2 = { "OracleJava", "Community", };
        
         System.out.println("\n" + as.length );    // 3
         for(int i = 0; i < as.length; ++i)
             System.out.print( as[i] + " ");   //array of string
         //as2가 참조하는곳(쳐다보는곳)을 a2도 참조.
         as = as2;
         System.out.println("\n" + as.length ); // 2
        
         for(int i = 0; i < as.length; ++i)
             System.out.print( as[i] + " " );  //another array
        
         //참조해제
         as2 = null;
    }
}
 
[결과]
3
1 2 3
3
Education of OnJProgramming
2
OracleJava Community 

댓글 없음:

댓글 쓰기