PriorityQueue란? PriorityQueue는 원소들을 우선순위에 따라 저장하고 관리하는 자료구조이다. 각각의 원소는 우선순위의 순서대로 저장된다. PriorityQueue는 일반적으로 min-heap 이나 max-heap을 사용해 구현된다. Heap은 트리 형태의 우선순위대로 순서가 나타내지는 자료 구조로. min-heap 방식으로 구현되면 우선순위가 낮은 요소가 맨 앞에 오고, 우선순위가 높은 요소가 맨 뒤에 오게 되며, max-heap 방식을 사용해 구현되면, 우선순위가 높은 요소가 맨 앞으로 오고 우선순위가 낮은 요소가 맨 뒤에 위치한다. Kotlin과 Java의 PriorityQueue는 min-heap 방식으로 구현되어 우선순위가 낮은 요소가 가장 앞쪽에 온다. 예를 들어 아래와 같이..
heap
JVM의 메모리 할당 방식 JVM은 기본적으로 Stack Memory 와 Heap Memory 라 불리는 두가지 저장 공간을 이용해 메모리를 할당한다. 이들에 메모리를 할당하는 방법은 바이트 코드를 한 줄 한 줄 읽는 것이다. 한 줄 한 줄 읽혀진 값들은 JVM의 Stack 영역에 차곡차곡 메모리 할당 예제 예를 들어 다음과 같은 코드가 있다고 해보자. fun main() { val numberA = 12 val numberB = 15 val numberC = numberA + numberB } fun add(numberA: Int, numberB: Int): Int { return numberA + numberB } 위 코드에서 main function이 수행되면 다음과 같은 과정을 거쳐 메모리가 할당..