java 2

java 질의응답

ConcurrentHashMap은 왜 HashMap보다 안전한가?멀티스레드 환경에서 HashMap은 동기화 처리가 되어 있지 않아 동시에 여러 스레드가 put 또는 resize 작업을 수행할 경우 무한 루프, 데이터 손실, 구조 붕괴와 같은 문제가 발생할 수 있다. 예시로 리사이징 도중 다른 스레드가 버킷에 접근하면서 해시 충돌로 인한 순환 참조가 생길 수 있다.반면 ConcurrentHashMap은 다음과 같은 구조적 개선을 통해 동기화 문제를 해결하고 있다.Java 7까지는 Segment(세그먼트)라는 구조를 사용하여 맵을 여러 구역으로 나눈 후 Segment 단위로 락을 걸어 동시성 확보Java 8부터는 Segment를 제거하고 배열의 각 Bucket(버킷)에 대해 CAS(Compare-And-Sw..

java 2025.06.02

JAVA composition

자바 공부를 더 하던 도중 컴포지션에 대한 것을 알게 되었고 제대로 알아보고자 포스팅하게 되었다. 컴포지션(composition)이란 기존 클래스가 새로운 클래스의 구성요소가 되는 것으로 상속의 단점을 커버할 수 있다.상속이란 하위 클래스가 상위 클래스의 특성을 재정의하는 것을 말한다. 상속의 단점은캡슐화를 위반, 유연하지 못한 설계, 다중상속 불가능이다. 코드로 상속의 단점과 컴포지션을 이용한 개선을 확인해 보자.HashSet에 요소를 몇 번 삽입하는지 count 변수로 체크하고 출력하는 예제이다.package composition;import java.util.Collection;import java.util.HashSet;public class CustomHashSet extends HashSet ..

java 2024.05.17
728x90