[java] garbage collection
Garbage Collection [Minor GC] 새로 생성된 대부분의 객체는 Eden 영역에 위치한다. Eden 영역이 꽉 차게 되면 GC가 발생한다. GC가 발생한 이후, 살아남은 객체는 Survivor 영역 중 하나로 이동한다. 이 과정을 반복하다가 계속해서 살아남은 객체는 일정 시간 참조되고 있다는 뜻이므로 Old 영역으...
Garbage Collection [Minor GC] 새로 생성된 대부분의 객체는 Eden 영역에 위치한다. Eden 영역이 꽉 차게 되면 GC가 발생한다. GC가 발생한 이후, 살아남은 객체는 Survivor 영역 중 하나로 이동한다. 이 과정을 반복하다가 계속해서 살아남은 객체는 일정 시간 참조되고 있다는 뜻이므로 Old 영역으...
Call by value vs Call by Reference 간단하면서도 헷갈리는 개념 중 하나이다. 결론 : 자바는 Call by Value이다. Primitive Type(원시 자료형)의 경우 Call by Value int, short, long, float, double, char, boolean Reference Type(참...
==와 equals() 차이 == 비교를 위한 연산자. 비교하고자 하는 대상의 주소값을 비교한다. equals() 메소드이며, 객체끼리 내용을 비교할 수 있다. 비교하고자 하는 대상의 내용 자체를 비교한다. [Code] String a = "a";...
Dynamic Array vs LinkedList ++2020.06.01 자료구조에 해당하는 파트이지만, 자바를 기반으로 설명을 진행했다. 그러다보니 Collection에서 사용하는 네이밍을 따라 ArrayList라고 표기를 했다. 필자의 글을 보고 있던 분의 조언으로 Dynamic Array로 네이밍을 변경한다. Java : Array...
이진 탐색 트리 BST(Binary Search Tree) 이진 탐색 트리의 목적은? -> 이진 탐색 + 연결 리스트 이진 탐색 탐색에 소요되는 시간 복잡도는 O(logN) 하지만 삽입, 삭제가 불가능. 연결 리스트 삽입, 삭제의 시간 복잡도는 O(1) 하지...
Tree 트리의 개념. 트리의 구성 요소. 트리의 종류. 트리의 개념 트리라는 이름이 나온 이유는 실제 나무를 거꾸로 세워놓은 듯한 모양이라서 트리라고 부른다. 선형 자료구조에서 배열이나 리스트 등도 존재하지만, 트리가 나온 이유는 뭘까? 일반 배열에서 삽입이나 삭제를 하는데 O(N)의 시간이 걸린다. 배열의 첫번째 원소에 ...
Stack과 Queue 스택과 큐는 선형 자료구조이다. Stack 나중에 들어간 원소가 먼저 나오는 구조이다. LIFO(Last in First Out)의 구조. 안드로이드의 액티비티를 관리하는 데 스택이 사용된다. 시간 복잡도 : O(n) 공간 복잡도 : O(n) 언제...
Heap 개요 개념 힙은 자료구조의 일종으로 우선 순위 큐를 위해서 만들어졌다. 우선 순위 큐 : 우선순위의 개념을 큐에 도입한 자료구조. 데이터들이 우선순위를 가지고 있으며, 우선순위가 높은 데이터가 큐에서 먼저 빠져 나간다. 언제 사용? 시뮬레이션 시스...
Hash(해시) Hash Or HashTable은 내부적으로 배열을 사용해 데이터를 저장한다. 해시 알고리즘을 이용해 고유한 인덱스를 얻는다. 인덱스를 이용하여 빠른 검색 속도를 갖는다. 해시란 다양한 길이를 가진 데이터를 고정된 길이의 데이터로 매핑한 값을 말한다. [해시 함수] 데이터를 효율적으로 관리하기 위해, 임의의...
B Tree & B+ Tree 이진 트리는 하나의 부모가 두 개의 자식밖에 가지지 못하고, 균형이 맞지 않으면 검색 효율이 선형 검색 급으로 떨어진다. 하지만 이진 트리 구조의 간결함과 균형만 맞다면 검색, 삽입, 삭제 모두 O(logN)의 성능을 보이는 장점이 있기 때문에 계속 개선시키기 위한 노력이 이루어지고 있다. [B Tree...