BE/Java5 [JAVA] ConcurrentHashMap은 뭘까? (synchronizedMap, HashMap과의 비교) 서론여러 강의나 예제를 보면 동시성을 생각하면 concurrentHashMap을 사용하라고 한다. 왜일까? 그리고 도대체 뭘까? ConcurrentHashMap 이란?!- Java의 java.util.concurrent 패키지에 포함된 동시성 map- 여러 스레드가 동시에 데이터를 안전하게 읽고 쓸 수 있도록 설계된 자료구조- 기본적으로 동시성 제어를 위해 여러 메커니즘을 사용하여 성능 저하 없이 스레드 안전성을 제공 ConcurrentHashMap의 특징과 동작 방식1. 세분화된 잠금 - ConcurrentHashMap은 내부적으로 세그먼트(segment)나 버킷(bucket) 수준에서 잠금을 관리. 이는 전체 맵이 아닌 일부에만 잠금을 걸어 여러 스레드가 병렬로 작업할 수 있게 함 - Java.. 2024. 6. 3. [JAVA] HashMap과 HashTable의 차이 서론어느날 Youtube에서 강연을 보다가 "hashMap과 hashTable의 차이 다들 잘 알고계시죠~? 면접에도 많이 나오잖아요." 라고 말씀하셨는데 나는 들어만 봤고, 그냥 남들 다 쓰니까 사용했지 정확한 차이같은건 모르고 있었고 알려하지 않았었기에.. 이번 기회에 정리해보려고 한다! Hash(해시)가 뭔데?먼저 Hash가 뭔지에 대해서 알아보자!해시(Hash)는 데이터구조와 알고리즘에서 중요한 개념으로, 데이터를 고정된 크기의 해시값으로 매핑하는 함수와 그 결과로 생긴 값을들 효율적으로 저장하고 검색하는 방법이다. 따라서 해시 기반 데이터 저장 구조에서는 데이터 검색과 저장이 매우 빠르게 진행된다. Hash Function(해시함수)가 뭔데?임의의 크기를 가진 데이터를 고정된 크기의 해시 값(.. 2024. 6. 3. [JAVA] 자바 intersection type이 뭔지 알아보자! (with 람다) ❗️이 글을 보기 위해선 java generic(제네릭)이 선행되어야 한다. 잘 모른다면 아래 두 개의 포스트를 먼저 읽고 오는 것을 추천한다. https://suhyeon-developer.tistory.com/23 [JAVA] Generic 한 걸음 나아가기! (2) 실전편 ❗️제네릭이 뭔지 궁금하다면 이전 포스트를 참고하길 바란다. https://suhyeon-developer.tistory.com/23 s.compareTo(elem) > 0).count(); } public static void main(String[] args) { // Integer 배열에 대해 countGreaterThan 메서드 suhyeon-developer.tistory.com intersection type이 뭐야? .. 2023. 12. 26. [JAVA] Generic 한 걸음 나아가기! (2) 실전편 ❗️제네릭이 뭔지 궁금하다면 이전 포스트를 참고하길 바란다. https://suhyeon-developer.tistory.com/23 s.compareTo(elem) > 0).count(); } public static void main(String[] args) { // Integer 배열에 대해 countGreaterThan 메서드 호출 Integer[] arr1 = new Integer[]{1, 2, 3, 4, 5}; System.out.println(countGreaterThan(arr1, 4)); // arr1에 대해 4보다 큰 값의 개수 출력 // String 배열에 대해 countGreaterThan 메서드 호출 String[] arr2 = new String[]{"a", "b", "c", .. 2023. 12. 23. 이전 1 2 다음