Dev Repo Log
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (60)
      • DataBase (4)
        • MySQL (1)
      • Algorithm (14)
      • Project (3)
        • teamProject1 (3)
      • Programming Language (20)
        • Java (18)
        • JavaScript (1)
        • Kotlin (1)
      • Learning (16)
        • LLM (1)
        • Git (0)
        • TIL (8)
        • Design Pattern (2)
        • Servlet & JPA (5)
      • Software Development Tools (3)
        • IDE (3)
        • tools (0)
      • Others (0)
  • 홈
  • 태그
  • 방명록
Programming Language/Java

[EFFECTIVE JAVA] ordinal 인덱싱 대신 EnumMap을 사용하라

핵심 요약 enum 상수에 따른 값들을 배열에 저장하고 ordinal() 메서드가 반환하는 정수 값을 인덱스로 사용하려는 유혹이 있을 수 있습니다.하지만 이는 타입 안전성이 없고 유지보수에 취약한 방식입니다.대신 enum을 키로 사용하도록 특별히 설계된 EnumMap 을 사용하면 타입 안전성, 명확성, 유지보수성, 그리고 우수한 성능까지 모두 확보할 수 있습니다. 기존 방식: ordinal()을 배열 인덱스로 사용 정의enum 상수가 정의된 순서를 반환하는 ordinal() 메서드ordinal() 결과를 배열의 인덱스로 직접 사용하는 방식특정 enum 상수에 해당하는 데이터를 배열의 특정 위치에 저장하거나 조회할 때 사용 예시 코드class Plant { // 식물을 생애주기(ANNUAL, PERE..

2025. 3. 29. 18:31
Programming Language/Java

[EFFECTIVE JAVA] 비트 필드 대신 EnumSet을 사용하라

핵심 요약 열거 타입 상수의 집합을 표현할 때, 과거에 사용되던 비트 필드(Bit Field) 방식 대신 현대 자바에서는 EnumSet 을 사용하는 것이 훨씬 안전하고 효율적이며 가독성 높은 방법입니다.EnumSet은 타입 안전성을 보장하고 비트 필드 수준의 성능을 제공하면서도 사용하기 쉽습니다.  비트 필드 정의열거한 값들을 주로 집합으로 사용할 경우, 각 상수에 서로 다른 2의 거듭제곱 값을 할당한 정수 열거 패턴을 사용비트별 OR(|) 연산을 통해 여러 상수를 하나의 집합(정수 값)으로 표현 예시 코드public class FilePermissions { public static final int PERMISSION_READ = 1  특징비트별 연산(OR, AND 등)을 사용하여 합집합,..

2025. 3. 26. 14:49

[EFFECTIVE JAVA] 한정적 와일드 카드를 사용해 API 유연성을 높이라

보호되어 있는 글입니다.

2025. 3. 17. 09:16

비한정적 와일드 카드 & 한정적 와일드 카드

보호되어 있는 글입니다.

2025. 3. 17. 09:09

공변성 & 반공변성 & 불공변성?

보호되어 있는 글입니다.

2025. 3. 17. 09:08

CheetSheet

보호되어 있는 글입니다.

2025. 3. 12. 22:22
  • «
  • 1
  • 2
  • 3
  • 4
  • »
  • 최근 글
  • 최근 댓글

최근 글

최근댓글

공지사항

전체 카테고리

  • 분류 전체보기 (60)
    • DataBase (4)
      • MySQL (1)
    • Algorithm (14)
    • Project (3)
      • teamProject1 (3)
    • Programming Language (20)
      • Java (18)
      • JavaScript (1)
      • Kotlin (1)
    • Learning (16)
      • LLM (1)
      • Git (0)
      • TIL (8)
      • Design Pattern (2)
      • Servlet & JPA (5)
    • Software Development Tools (3)
      • IDE (3)
      • tools (0)
    • Others (0)

태그

  • #Stream
  • #브루트포스
  • #JPA
  • #robopojo
  • #Kotlin
  • #그래프 탐색
  • #백트래킹
  • #구현
  • #제네릭
  • #rancher desktop
  • #그래프 이론
  • #srid
  • #Effective Java
  • #AI활용
  • #디자인패턴
  • #dto
  • #행위패턴
  • #record
  • #불공변성
  • #BFS
  • #Java
  • #Servlet
  • #docker
  • #MySQL
  • #leetcode
  • #객체지향
  • #JavaScript
  • #시뮬레이션
  • #intellij
  • #예외처리
MORE

블로그 인기글

Powered by Privatenote Copyright © Dev Repo Log All rights reserved. TistoryWhaleSkin3.4

티스토리툴바