플레이데이터 - 4일차 자바 공부

Kim Hyen Su·2023년 7월 4일

🎇배열

  • 참조형 타입
  • index 사용(0 ~ n-1, n)
  • 동일한 타입을 순차적으로 나열하여 데이터 저장.
  • 한번 생성된 배열은 크기를 바꿀 수 없다.

배열 선언

  • 타입[] 변수명; or 타입 변수명[];
  • 변수와 마찬가지로 선언 후 초기화 없이 사용하게 되면, NullPointException이 발생.

배열 생성

  • 타입[] 변수명 = {값1, 값2, 값3, ...}
  • 배열 생성 시 스택영역에 주소값 저장, 힙영역에 인덱스마다 값이 저장된다.
  • 배열 내부 값 수정 시, 대입 연산자를 사용.
    Ex) arr[0] = 1
  • 배열을 미리 선언 후 중괄호 내 값들을 나열하는 생성 방법은 오류가 발생한다.
    Ex) 타입[] 변수명 ; \n 변수명 = {값1, 값2, 값3,...} 오류
  • 이러한 경우, new 연산자를 사용하면 생성 가능하다.
    Ex) 타입 [] 변수명; \n 변수명 = new 타입[] {값1, 값2, 값3, ...} 가능
  • 배열은 선언 및 생성과 동시에 크기를 지정해줘야 한다.
타입 [] 변수명 = new 타입[크기];
	- 메모리 특성 상 생성과 동시에 초기값으로 자동 초기화 된다.
    - int : 0, double : 0.0, boolean : false, char : \u0000(\0), 참조 : null

배열 길이

  • 변수명.length → 배열 길이 int형 반환.
  • ArrayIndexOutOfBoundsException : 배열 길이 초과할 경우 발생.

다차원 배열

  • 행과 열로 구성된 배열.
  • int[][] scores = new int[2][3];
  • 자바에서는 각 행마다 다른 길이의 배열 생성이 가능하다.
  • 참조 변수가 행배열의 주소값을 참조하고, 행배열 내부에 열 배열의 참조값을 참조하고 있는 구조로 다차원 배열이 구현되어 있다.

참조형 배열

  • 배열 내 배열 요소마다 참조하는 객체의 참조값을 담고 있다.

  • String 배열
    내부 값이 같은 경우, 하나의 값을 두 배열의 인덱스가 참조하기 때문에 두 인덱스를 비교 시 '=='에는 true를 반환.

    반면에, equals() 메서드 사용 시 배열 인덱스 내부에 값 자체를 비교하기 때문에, 문자열 리터럴 값이 같은 경우 true를 반환해준다.

배열 복사

  • System.arrayCopy();
  • for문을 사용하여 이전 배열 요소의 값을 새로운 배열에 대입한다.

향상된 for문

  • for( 타입 변수명 : 배열 ) { 반복 코드 }

🎇열거 타입(Enumeration Type)

  • Enum 클래스의 객체 중 하나의 상수를 저장하는 타입.
  • 열거 상수는 Enum 클래스의 객체이다.

Enum 클래스 선언 및 사용

▶ Enum 클래스 선언
  public enum Week {
      MONDAY,
      TUESDAY,
      WEDNESDAY,
      THURSDAY,
      FRIDAY,
      SATURDAY,
      SUNDAY
  }
  
 ▶ Enum 클래스 사용(열거 타입 지정)
 Week moday = Week.MONDAY; 

상수 명명 규칙

  • 여러 단어를 합친 합성어 사용 시 단어마다 '_'로 구분해준다.

열거 상수의 값 불변

  • 열거 상수의 값은 선언 후 변하지 않으며, 열거 타입 지정한 참조형 변수의 값이 바뀌는 것은, 상수의 값이 아닌 참조하는 주소값이 변경되는 것이다.

※ 참고

Calendar 클래스
- 현재 연/월/일/요일/시간 등을 가지고 있는 클래스.
- Calendar.MONTH : 0~11 값을 반환. 0 == 1월
- Calendar.DAY_OF_WEEK : 1~7 사이의 수를 반환. 1 == 일요일
profile
백엔드 서버 엔지니어

0개의 댓글