본문 바로가기
728x90
반응형

Java45

ConcurrentHashMap: 멀티스레드 환경을 위한 고성능 해시 맵 ConcurrentHashMap은 Java에서 멀티스레드 환경에서 안전하게 사용할 수 있는 해시 맵을 제공하는 클래스입니다. 이는 Hashtable의 단점을 보완하고, 고성능과 동시성을 제공하기 위해 설계되었습니다.특징: 높은 동시성과 성능을 제공하는 이유기존의 Hashtable은 모든 메서드에 synchronized 키워드를 사용하여 동기화를 구현했습니다. 그러나 이 방식은 많은 스레드가 동시에 get이나 put을 호출하는 경우 병목현상을 발생시켜, 성능 저하를 일으킬 수 있습니다. 이와 달리, ConcurrentHashMap은 다음과 같은 방식으로 동기화를 개선하여 더 높은 동시성을 제공합니다:부분 잠금 (Lock Striping)ConcurrentHashMap은 내부적으로 해시 테이블을 여러 개의 .. 2024. 11. 13.
List 자주 발생하는 리스트 관련 예외 및 해결 방법 리스트를 다루다 보면 다양한 예외가 발생할 수 있습니다. 특히, IndexOutOfBoundsException, ConcurrentModificationException 등의 예외는 자주 발생하며, 코드의 안정성을 떨어뜨릴 수 있습니다. 이번 글에서는 이런 예외가 발생하는 원인과 방지 방법에 대해 알아보고, 실제 예외 상황을 재현하며 해결책을 제시해 보겠습니다. 1. IndexOutOfBoundsException예외 발생 원인IndexOutOfBoundsException는 리스트의 유효한 범위를 벗어난 인덱스에 접근하려고 할 때 발생합니다. 예를 들어, 리스트의 크기가 10인데 인덱스 10 이상의 위치에 접근하려고 하면 이 예외가 발생합니다. 리스트의 인덱스는 0부터 시작하기 때문에, 유효한 인덱스 범위.. 2024. 11. 8.
List 정렬과 Comparator/Comparable 인터페이스 활용 Java에서 리스트나 컬렉션 내 요소를 정렬하는 것은 중요한 기술 중 하나입니다. 컬렉션의 요소가 기본적으로 정렬 가능한지 여부에 따라 두 가지 인터페이스, Comparable과 Comparator,를 사용합니다. 이를 활용하면 단순한 정렬부터 복잡한 다중 필드 정렬까지 구현할 수 있습니다. 아래에서 이 두 인터페이스를 비교하고, Java 8 이후의 기능 확장에 대해 설명하겠습니다.1. Comparable 인터페이스Comparable 인터페이스는 객체 자체에 정렬 기준을 정의할 때 사용됩니다. 즉, 객체에 내장된 정렬 기능을 설정할 수 있습니다. Comparable 인터페이스는 단일 정렬 기준만을 제공하기 때문에 간단한 정렬 작업에 적합합니다.구현 방법:클래스에 Comparable 인터페이스를 구현합니다.. 2024. 11. 6.
728x90
반응형