프로그래밍/WHY? 썸네일형 리스트형 [WHY?] ConcurrentHashMap은 어떻게 동시성을 보장할까 HashTable 동시성을 보장하는 Map 자료구조 중 하나이다. 그러나 성능이 좋지 않은 오래된 녀석이라 잘 사용하지 않는다. public synchronized int size() { return count; } public synchronized V put(K key, V value) { ... } Java API 문서를 보면 알겠지만, synchronized 범벅을 통해 동시성을 보장한다. 동시성을 보장해주는 synchronized는 편리한 키워드지만 컬렉션의 get, put 등 모든 메소드에 사용하게 되면, 당연히 성능이 저하된다. ConcurrentHashmap 결론적으로 ConcurrentHashmap은 좋은 성능과 함께 동시성을 보장한다. 어떻게 그럴 수 있을까? public V get(O.. 더보기 [WHY?] Static 무엇일까? Static이 정확히 뭘까? Static 변수 public Static{ public String notStatic; public static String staticVariable = "sv"; public static void main(String[] args) { } public void someMethod() { } } 위와 같은 Static 클래스가 존재할 때, notStatic은 인스턴스 변수, StaticVariable은 클래스 변수이다. 인스턴스 변수는, 객체의 생성과 함께 시작되고 저장된다. - new 연산자로 생성되고 Heap 영역에 저장된다. 클래스 변수는 클래스의 생성과 함께 저장된다. - 클래스에 대한 정보와 클래스 변수는 메소드 영역에 저장된다. 즉, 생명 주기도 다르고 저장되는.. 더보기 이전 1 다음