[Java] 배열

이병수·2024년 1월 1일
0

Java

목록 보기
3/27
post-custom-banner

배열

같은 타입의 변수를 반복해서 선언하고 반복해서 사용하는 문제를 해결


배열 선언과 생성

1. 변수 선언

int[] students; // 와 같이 배열 변수를 선언해야한다.
  • 이 배열에는 int 타입의 변수를 배열에 담을 수 있다.

2. 배열 생성

students = new int[5]; // 배열 생성
  • new int[5] 라고 입력하면 총 5개의 int형 변수를 담을 공간이 생성이 된다.

  • new int[5]로 총 5개의 int형 변수값이 만들어지지만, 자바는 배열을 생성할 때 그 내부값을 자동으로 초기화한다.

  • 따라서 모두 0의 값으로 저장이 된다.

  • 숫자는 0, boolean은 false, String은 null, 다른 참조값들은 null


3. 배열 참조값 보관

students = x001; // 배열 참조값 보관
  • 이 students는 배열의 위치값만 저장되어 있으며 배열 자체가 아니라는 것을 명심하자

  • new int[5]로 배열을 생성하면 배열의 크기만큼 메모리를 확보한다

    • 5 * 4byte = 20byte 확보
  • 배열을 생성하고 나면 자바는 메모리 어딘가에 있는 이 배열(new int[5])에 접근할 수 있는 참조값(주소)(x001)을 반환한다.

  • 그러한 배열의 참조값을 int[] students 변수에 배열의 참조값을 보관하는 것이다.


인덱스

  • 배열에 인덱스 번호를 통해 배열 안의 값을 사용할 수 있다.

  • 인덱스 번호는 0번부터 시작한다.

int[] students = {1,2,3};

System.out.println(students[0]);
  • 인덱스를 사용해서 해당 위치의 요소에 접근할 수 있음

기본형 vs 참조형



배열은 동적으로 사이즈를 변경할 수 있다.

  • 기본형은 선언과 동시에 크기가 정해진다.

  • 배열은 크기를 동적으로 바꿀 수 있으며 이것을 동적 메모리 할당 이라고 한다.

  • 기본형은 선언과 동시에 사이즈가 정해지지만, 참조형을 사용하면 동적으로 크기가 변해서 유연성을 제공할 수 있다.

  • 기본형은 사용할 값을 직접 저장하지만 참조형은 메모리에 저장된 배열이나 객체의 참조를 저장한다.


2차원 배열

int[][] arr = new int[2][3] // 2차원 배열 선언
  • 행(row), 열(col)로 구성된다.

  • 위에서 선언한 2차원 배열은 2행 3열의 int형 배열을 선언한 것


가변배열

  • 2차원 배열을 생성할 때 열의 길이를 생략하여, 행마다 다른 길이의 배열을 요소로 저장할 수 있다.
int[][] array = new int[3][];

array[0] = new int[2];
array[1] = new int[4];
array[2] = new int[3];

String 배열

문자열 = 문자 배열

  • String = char[]

char과 다른 String만 가지고 있는 기능들

메서드응답값 타입설명
length()int문자열의 길이를 반환한다.
charAt(int index)char문자열에서 해당 index의 문자를 반환한다.
substring(int from, int to)String문자열에서 해당 범위(from ~ to)에 있는 문자열을 반환 (to는 범위에 포함 x)
equals(String str)boolean문자열의 내용이 같은지 확인한다. 같으면 true 다르면 false
toCharArray()char[]문자열의 문자배열(char[])로 변환해서 반환
new String(char[] charArr)String문자배열(char[])을 받아서 String으로 복사해서 반환

참고

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

스파르타코딩클럽 - Java 웹개발

profile
백엔드 개발자가 되고 싶어요
post-custom-banner

0개의 댓글