2018년 9월 1일 토요일

[자료구조] 왜 Java는 heap을 사용하는가(heap memory와 heap data structure의 연관성)

Computer science를 공부하다보면, 필수적으로 공부하는 것 중 대표적인 것은 Data structure(자료구조)와 Programming language일 것이다.

일반적으로 Data structure의 후반부를 공부하게 되면 Tree형 자료구조를 공부하며 Heap data structure를 공부해보았을 것이다.

그리고 Programming language에서, Java, C, C++등 동적할당에 해당하는 new키워드로 instance 생성시에 heap memory에 해당하는 영역에 memory가 할당된다는 것도 알고 있을 것이다.

그렇다면 아래와 같은 의문을 가질 수 있다.

왜 동적할당이 되는 영역의 memory는 Heap일까? List나 다른 자료구조일 수는 없는걸까?

정답을 말하면, Heap Memory와 Heap Data structure는 전혀 별개다. 이름때문에 헷갈릴 수 있지만 Heap memory에서 말하는 Heap은 Pool에 가깝다. 링크에 따르면 1975년 경부터 가용 메모리 pool의 개념으로 heap이란 단어를 썼다고 한다.

그러니 헷갈리지 말자.

요약 : Heap Memory와 Heap data structure는 전혀 관계가 없다.

댓글 없음:

댓글 쓰기

[TroubleShooting] sbt could not find or load main class file

Have you gotten this error message, when you execute sbt in git bash? Error: Could not find or load main class file Caused by: java.lang....