[Java] EnumMap이란? 0. 들어가기 전에 체스 미션을 진행하면서, HashMap을 EnumMap으로 리팩토링을 해봤습니다. 처음 쓰는거라 어떤 역할을 하는지 몰라 정리해 봅니다. 1. EnumMap 이란? Enum 타입의 Key를 갖는 특화된 맵 EnumMap은 하나의 Enum을 Key로 갖는다. 또한 HashMap과는 달리 HashMap을 사용하지 않고 Array로 구현이 되어서 효율적이다. 2. EnumMap의 특징 2.1 속도 public class EnumMap extends AbstractMap implements java.io.Serializable, Cloneable { private final Class keyType; private transient K[] keyUniverse..
자바

[Java] JVM - Garbage Collector 0. 들어가기전에 GC는 여러 종류가 있고, 자바 버전별로 기본적으로 채택하는 GC가 다릅니다. JAVA 8에는 Parallel GC, JAVA 9이상 부터는 G1 GC가 사용이 됩니다. Parallel GC까지는 이전 GC와 동작방식이 비슷하지만, G1 GC는 동작하는 방법이 달라 부득이하게 내용이 나뉘게 되었습니다. 1. Garbage Collector 런타임에 실행 중인 프로그램에 대한 메모리 할당 및 회수를 관리하는 자동 메모리 관리 시스템 가비지 컬렉터는 가비지 컬렉션(Garbage Collection)이라는 과정을 통해 자바 어플리케이션에서 자동으로 메모리 관리를 해주는 시스템이다. 그렇다면 '가비지 컬렉션(이하 GC)를 자주 실행하는게 ..

[Java] JVM - 메모리 구조 0. 들어가기 전에 static 변수는 static 영역 메모리에 올라간다. 그래서 GC가 되지 않기 때문에 남용하면 성능 문제를 일으킬 수 있다. 이 문장은 자바와 관련된 내용을 다루는 블로글들을 돌아다니면 한 번쯤 볼 수 있는 문구이다. '문법 공부가 바빠서', '프로젝트가 있어서' 이해가 안되지만 그냥 넘어간적이 한 두 번이 아니다. 그래서 이번엔 이 문장들을 이해하기 위해서 자바의 기초이자 심화과정인 JVM에 대해서 알아보려고 한다. 1. JVM이란? JVM(Java Virtual Machine)은 자바를 실행하기 위한 가상머신이며, 자바 바이트 코드를 OS에 맞게 해석 해주는 역할을 한다. 또한, 프로그램 메모리를 최적화 해주고 관리한다. 자바는 다른 프로그래..