☕
java handbook
  • Part 01. Hello World!
    • Java 환경설정
    • Java 학습 Flow
    • JVM
    • 변수
      • 상수와 리터럴
      • 기본형과 참조형
      • 문자와 문자열
  • Part 02. 연산자
    • 증감 연산자와 부호 연산자
    • 형변환 연산자와 자동 형변환
    • 사칙 연산자와 산술변환
    • Math 클래스와 나머지 연산자
    • 비교 연산자와 문자열의 비교
    • 논리 연산자와 비트 연산자
    • 조건 연산자와 대입 연산자
  • Part 03. 조건문과 반복문
    • IF
    • SWITCH
    • FOR
    • 임의의 정수 만들기
    • WHILE
    • break 와 continue
  • Part 04. 배열
    • 배열의 길이와 초기화
    • 배열 연습하기
    • String 배열
    • 2차원 배열
    • Array
  • Part 05. 객체지향
    • 클래스와 객체
    • 객체의 생성과 배열
    • 클래스의 정의
    • 변수의 종류
    • 메서드
    • 기본형 매개변수 와 참조형 매개변수
    • static 메서드와 인스턴스 메서드
    • 오버로딩
    • 생성자
    • this 와 this()
    • 변수의 초기화
Powered by GitBook
On this page
  • 배열의 길이
  • 배열의 한계점
  • 배열의 크기를 바꿀 수 없는 이유?
  • 배열의 크기가 부족할 때의 방법
  • 배열의 초기화
  • 자동 초기화
  • 초기화 방법
  1. Part 04. 배열

배열의 길이와 초기화

배열의 길이

배열이름.length

  • 배열의 길이 : int 타입 상수

  • int[] arr = new int[5]; : 배열의 길이가 5인 int 배열

  • int len = arr.length; : arr.length 의 값은 5이고 len 변수에 저장된다.

배열은 한번 생성되면 컴파일 후 실행되는 동안은 그 길이(크기)를 바꿀 수 없습니다.

배열의 한계점

배열의 크기를 바꿀 수 없는 이유?

  • new int[5];로 배열을 생성하면 int 가 4byte 이기 때문에 총 20byte 를 저장하기 위한 연속적인 메모리 공간을 찾습니다.

  • 연속적인 공간을 찾아서 주소를 배정합니다.

  • 배정이 끝난 후 크기를 5가 아닌 10으로 늘려야 한다고 가정해 봤을 때 배정받은 주소 뒤에 20byte 를 추가적으로 배정해야 하는데 뒤에 연속적인 메모리 공간이 존재한다는 보장이 없습니다.

  • 따라서 크기를 바꿀 수 없습니다.

배열의 크기가 부족할 때의 방법

  • 필요한 만큼의 크기의 배열을 새롭게 만듭니다.

  • 새로 만든 배열에 기존 배열의 값을 복사해서 저장합니다.

  • 아래 예제코드로 학습해 보겠습니다.

class Arrays2_1 {
    public static void main(String[] args) {
        int[] arr = new int[10];
        System.out.println("배열의 길이 = " + arr.length);

        for (int i = 0; i < arr.length; i++) {
            System.out.println("arr[" + i + "] = " + arr[i]);
        }
        System.out.println();
        // index 범위를 벗어나는 경우 Error 발생
        for (int i = 0; i < arr.length + 1; i++) {
            System.out.println("arr[" + i + "] = " + arr[i]);
        }
    }
}

배열의 초기화

배열의 각 요소에 처음으로 값을 저장하는 것을 의미합니다.

자동 초기화

자료형(변수 타입)
기본값

byte

0

short

0

int

0

long

0L

float

0.0f

double

0.0d

char

'\n0000'

boolean

false

참조형 변수(String or any Object)

null

  • 배열은 기본적으로 저장 하려는 값의 타입의 기본값으로 자동 초기화 해줍니다.

초기화 방법

  1. int[] num = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

  2. int[] num = {1, 2, 3, 4, 5, 6, 7, 8, 9};

    • new int[] 를 생략할 수 있습니다.

  • 아래 예제코드로 학습해 보겠습니다.

class Arrays2_2 {
    public static void main(String[] args) {
        int[] num1 = new int[]{1,2,3,4,5,6,7,8,9};
        int[] num2 = {1,2,3,4,5,6,7,8,9};

        for (int i = 0; i < num1.length; i++) {
            System.out.println("num1[" +i + "] = " + num1[i]);
        }
        System.out.println();
        for (int i = 0; i < num2.length; i++) {
            System.out.println("num2[" +i + "] = " + num2[i]);
        }

        System.out.println();
        
        // 주의 할 점!
        int[] num3;
        // num3 = {1,2,3,4,5,6,7,8,9}; // Error 발생합니다.

        // 위처럼 나눠서 표현을 해야 한다면 아래처럼 초기화 하셔야 합니다.
        int[] num4;
        num4 = new int[]{1,2,3,4,5,6,7,8,9};

        for (int i = 0; i < num4.length; i++) {
            System.out.println("num4[" +i + "] = " + num4[i]);
        }
    }
}

Ref. Java의 정석 기초편 Chapter5(4, 5)

PreviousPart 04. 배열Next배열 연습하기

Last updated 2 years ago

Ref.

길이와 초기화