전체 글
-
[Java] ConcurrentHashMap 이란 무엇일까?Language/Java 2021. 2. 11. 20:44
들어가기 전에 HashTable, HashMap, ConcurrnetHashMap은 많이 유사한 특징들을 가지고 있습니다. 하지만 세부적으로 보면 조금씩 꽤나 차이가 있는데요. 간단하게 어떤 차이가 있는지 알아보면서 시작하겠습니다. Hashtable 클래스 public class Hashtable extends Dictionary implements Map, Cloneable, java.io.Serializable { public synchronized int size() { } @SuppressWarnings("unchecked") public synchronized V get(Object key) { } public synchronized V put(K key, V value) { } } Hashta..
-
[Java] 직렬화(Serialization)란 무엇일까?Language/Java 2021. 1. 30. 01:39
Serializable에 대해서 알아보기 직렬화라는 용어에 대해서 들어만 보고 공부해본 적은 없는데 이번 기회에 정리를 하게 되었습니다,, 이번 글에서는 직렬화에 대해서 알아보겠습니다. public interface Serializable { } Serializable의 인터페이스를 보면 메소드가 하나도 없는 것을 볼 수 있습니다. 아무런 구현해야 할 메소드도 없는 이 인터페이스가 도대체 왜 있는 것일까요? 개발을 하다 보면 아래와 같은 경우가 존재합니다. 생성한 객체를 파일로 저장할 일이 있을 수도 있습니다. 저장한 객체를 읽을 일이 생길 수도 있습니다. 다른 서버에서 생성한 객체를 받을 일도 생길 수 있습니다. 이럴 때 꼭 필요한 것이 Serializable 입니다. 우리가 만든 클래스가 파일에 읽거..
-
백준 2110번 공유기 설치 (Java)Baekjoon 2021. 1. 27. 23:10
문제 링크는 여기이고 풀이에 대해서 정리를 해보겠습니다. 문제를 보았을 때, 집의 좌표가 10억까지 가능한 것을 볼 수 있습니다. 굉장히 큰 값이라 그냥 탐색으로는 안될 거 같고 이진탐색으로 해결을 해야 할 것 같습니다. 1. 입력 받기 처음에 입력은 정렬된 순서로 주지 않기 때문에 정렬을 해서 위와 같이 만들었습니다. 그리고 우리가 구해야할 것은 공유기를 설치할 수 있는 집 사이의 최대 거리이기 때문에 이진탐색으로 조건을 걸어서 탐색을 해보겠습니다. 집 사이의 최대거리는 9 - 1 = 8 입니다. 집 사이의 최소거리는 2 - 1 = 1 입니다. 위의 경우라면 집마다 거리가 1 ~ 8 사이일 것이고, 각 거리들 마다 문제에서 준 공유기의 개수만큼 설치할 수 있는지 여부를 판단해야 합니다. 그러면 최대 G..
-
[Java] Generic Type erasure란 무엇일까?Language/Java 2021. 1. 26. 16:55
들어가기 전에 이번 글에서는 Generic Type erasure에 대해서 알아보겠습니다. 저에게는 쉽지 않은 내용입니다 ㅠㅠ 하지만 중요한 내용이니 정리를 열심히 해보겠습니다. 제네릭 은 JDK 1.5에 도입되었습니다. 제네릭을 공부해보셨으면 확실히 버그에 대한 처리와 좀 더 안정적이고 편리하게? 개발을 할 수 있다는 것을 느낄 수 있었을 것입니다. 이렇게 제네릭이 5버전 부터 나왔기에, 하위 버전과의 호환성 유지를 위한 작업이 필요했습니다. 따라서 코드의 호환성 때매 소거(erasure) 방식을 사용하게 됩니다. 제네릭과 배열의 차이를 2가지만 간단하게 알아보면서 소거방식에 대해 정리해보겠습니다. 첫 번째 배열은 공변이고, 제네릭은 불공변입니다. 저번 글에서도 정리한 적이 있는데요 한번 더 정리하고 ..