[JAVA] MultiValueMap에 대해
2022. 12. 5. 11:10
Computer Science/JAVA
map의 종류 HashMap TreeMap LinkedHashMap HashMap Map의 기본 형태 key:value 중복된 key 허용하지 않음 데이터를 뽑을 때 Key를 기준으로 가져옴 마치 Key를 인덱스처럼 가져와 value를 가져오기 때문에 시간복잡도 O(1) TreeMap HashMap + 추가 옵션 데이터가 들어올 때마다 Key 값에 따라 자동 정렬 됨 Comparator 사용 LinkedHashMap HashMap + 추가 옵션 입력순서를 보장한다. 예를 들어, HashMap에 A B C 라는 순서로 입력했을 때, 맵에 있는 모든 값을 출력할때 A B C 라는 순서로 출력한다는 보장이 없다. LinkedHashMap은 이러한 입력 순서를 보장한다. MultiValueMap Spring에서..
[JAVA] JVM 메모리 구조와 가비지 컬렉션 #2
2022. 1. 23. 18:57
Computer Science/JAVA
이번에는 Heap의 구조와 가비지 컬렉터에 대해 알아보자. Heap의 구조 Heap은 객체를 저장하는 가상 메모리 공간이다. '객체는 대부분 일회성이며, 메모리에 오랫동안 남아있는 경우는 드물다' 라는 전제로 객체의 생존 기간에 따라 Heap의 영역을 나누었다. Heap에는 원래 3가지 영역이 있는데, 1. New/Young Generation 2. Old Generation 3. Permanent Generation 이 세가지 중 Permanent Generation은 JAVA 8부터 삭제된 영역이다. Heap - Permanent Generation 생성된 객체들의 정보의 주소값이 저장된 공간이다. Class Loader에 의해 로드되는 클래스, 메서드에 대한 메타 정보가 저장된다. 앞서 말했다싶이 ..
[JAVA] JVM 메모리 구조와 가비지 컬렉션 #1
2022. 1. 16. 19:30
Computer Science/JAVA
면접때 자주 나오는 질문 하나인 JVM 메모리 구조와 가비지 컬렉선에 대해 알아보도록 하자! 우선 JVM의 메모리 구조를 설명하기 위해서는 JVM이 무엇인지 알아야 하고, 자바의 3대 구성요소에 대해 알아야 한다. 자바의 3대 구성 요소 - JDK(Java Development Kit): JRE에서 제공하는 실행 환경과 자바 개발에 필요한 여러가지 명령어와 컴파일러를 포함하는 소프트웨어 - JRE(Java Runtime Enviroment): 자바 소프트웨어를 실행하기 위한 소프트웨어. 클래스 라이브러리, 로더 클래스, JVM을 포함한다. - JVM(Java Virtual Machine): 자바 바이트 코드를 해석하고 실행하는 가상 머신 자바 바이트 코드란? 사용자 언어인 자바와 기계어 사이의 중간 언어..