본문 바로가기
반응형

Hashtable2

ConcurrentHashMap vs Hashtable vs Synchronized Map 개요 멀티쓰레드 자바 어플리케이션에서 Hashtable, Vector는 병목현상이 되었습니다. 따라서 JDK 1.5는 대용량, 짧은 대기 시간에 매우 효율적인 몇 가지 우수한 동시 컬렉션을 도입했습니다 3가지 컬렉션이 모두 쓰레드 안전하고 멀티 쓰레드, 동시성 자바 어플리케이션에서 사용합니다. 하지만, 쓰레드 안전 구현에 차이가 있습니다. Hashtable은 JDK 1.1에 등장한 레거시 클래스로 동기화 메서드를 사용해 동기화 안전을 보장합니다. Hashtable의 모든 메서드들은 동기화되어 있으므로 쓰레드가 증가할 때마다 느려집니다. Synchronized Map은 Hashtable처럼 동시성 자바 프로그램 사용합니다. 하지만 Hastable과 달리 레거시 클래스가 아니고 Collections.sync.. 2022. 10. 15.
equals() 와 hashCode()는 왜 재정의 해야 할까? 개요 롬복으로 equals()를 재정의하면 항상 hashCode()도 같이 재정의하도록 안내하고 있습니다. 어노테이션도 @EqualsAndHashCode입니다. 이는 Map, Set 등의 자바 컬렉션 클래스가 equals, compareTo, hashCode를 사용하기 때문입니다. equals와 hashCode를 같이 재정의 하지 않으면 원하는 대로 동작하지 않을 수도 있습니다.(해쉬 테이블에서 키로 사용할 때 기준입니다) 따라서 이번 시간에는 equals와 hashCode를 알아보겠습니다.. equals() 자바의 equals() 와 hashCode()는 Object 클래스에 있기 때문에, 모든 자바 클래스는 기본적으로 equals()와 hashCode() 구현체를 가집니다. equals() 자바 공식.. 2022. 10. 14.
반응형