ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 인프런 - 배열(주소값, 레퍼런스, 다차원 배열)
    자바/인프런 인강 2018. 1. 28. 12:20
    • 변수 선언시에 정한 배열의 크기는 나중에 변경이 불가하다.
    • 배열 안에 값들은 인덱스를 이용해서 접근 할 수 있다.


    예시) 

    int[] arrayA = {1,2,3,4,5}; //변수 선언과 함께 배열의 값을 할당


    int[] arrayB = new int[5]; //변수 선언시 배열의 데이터형과 크기만 지정

    int[0] = 1;                   //인덱스를 이용해서 배열 값을 할당

    int[1] = 2;

    int[2] = 3;

    int[3] = 4;

    int[4] = 5;


    • 배열은 주소값으로 메모리에 저장된다. 주소값은 배열의 각 요소가 메모리에 저장되어 있는 위치를 의미한다. 주소값과 레퍼런스는 같은 뜻이다.
    • 두 배열이 가리키는 레퍼런스 주소가 같다면 같은 데이터를 참조하고 있는 것이다.


    예시) 

    int[] array = {1,2,3,4,5};

    int[] array2 = array;


    // array를 array2에 할당했으므로 for loop를 이용한 출력결과는

    1

    2

    3

    4

    5


    // array2의 배열 값을 새로 할당한다. array는 어떻게 될까?

    예시) 

    array2[0] = 100;

    array2[1] = 200;

    array2[2] = 300;

    array2[3] = 400;

    array2[4] = 500;


    // array의 출력 결과는..

    100

    200

    300

    400

    500


    중요: array와 array2는 같은 주소값(레퍼런스)을 참조했으므로 array2가 배열 값을 변경하면 array 또한 같은 배열 값으로 변경된다.



    • 다차원 배열- 배열 안에 배열이 있는 것. 배열1의 주소값이 그 안에 배열2의 주소값을 가리키고 배열2의 주소값은 실제 데이터를 가리킨다.
    • 다차원 배열은 복잡하고 가독성이 떨어져서 주로 데이터베이스를 이용한다.


    예시)

    int[][] array = new int[3][]; // 2차원 배열의 변수선언, { {배열1},  {배열2},  {배열3} }


    int[0] = new int[2]; // { {값1, 값2},  {},  {} }

    int[1] = new int[3]; // { {값1, 값2}, {값a, 값b, 값c} ,{} }

    int[2] = new int[4]; 


    예시)

    int[][] array2 = new int[3][2];

    array2[0][0]= 10;

    array2[0][1]= 20;

    array2[1][0]= 100;

    array2[1][1]= 200;

    array2[2][0]= 1000;

    array2[2][1]= 2000;


    //{ {10,20}, {100, 200}, {1000,2000}}



    '자바 > 인프런 인강' 카테고리의 다른 글

    자바 인프런 - 추상클래스  (0) 2018.02.01
    자바 인프런 - 상속  (0) 2018.01.31
    자바 인프런 - static, final  (0) 2018.01.31
    자바 인프런 - 패키지  (0) 2018.01.29
    자바 인프런 - 클래스, 객체생성  (0) 2018.01.28