본문 바로가기

프로그래밍49

[Java | 자바] JVM의 메모리 구조 JVM의 메모리 구조 1. 메소드 영역(Method Area)프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일(*.class) 을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 Method Area에 저장한다. 이 때, 그 클래스의 클래스 변수 Class variable도 이 영역에 함께 생성된다. 2. 호출 스택(Call Stack 또는 Execution Stack) 호출 스택은 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서드가 호출되면, 호출 스택에 호출된 메서드를 위한 메모리가 할당되며, 메서드가 작업을 수행하는 동안 지역변수(매개변수 포함)들과 연산의 중간 결과 등을 저장하는 데 사용된다. 그리고 메서드가 작업을 마치게 되면, 할당되었던 메모리 공간은 반.. 2017. 4. 12.
[알고리즘] 시간복잡도/점근표기법 시간복잡도 또는 점근표기법알고리즘의 수행시간(명령이 실행되는 횟수)를 나타내는 방법 1. Big O 표기법알고리즘 수행시간의 상한(최악의 경우)을 나타낸 표기법 함수 설명 알고리즘 O(1) 해당 알고리즘이 최악의 경우에도 일정한 상수 시간에 종료된다는 것을 의미한다. 해시테이블 O(log2n) 최악의 경우에도 입력값 n이 증가하는 속도보다 수행시간이 증가하는 속도가 느린 알고리즘의 성능을 나타낸다. 이러한 성능을 가진 알고리즘은 n이 10일 때 수행 시간이 3.32이며 n이 10000이 됐을 때도 여전히 13.29에 불과하다. 입력이 1000배가 늘어나도 수행 시간은 고작 4배 정도 늘어난다. 이진 탐색 O(n) 최악의 경우 입력 값 n만큼의 수행 시간을 요구하는 성능이다. 입력값 n이 증가하는 속도만큼.. 2017. 4. 5.
[자료구조] 스택(Stack) 스택(Stack)이란? 후입선출(後入先出, Last In First Out; LIFO)의 자료구조로 새로 들어오는 데이터의 위치가저장소의 끝 부분(Top혹은 Top pointer라고 한다)이고, 내보내는 데이터 역시 저장소의 끄트머리에서 나간다.입력은 push, 출력은 pop이다. peek는 Top의 위치에 있는 데이터를 확인하는 것을 말한다. STL의 Stack [소스] [결과] 2017. 3. 13.
[자료구조] 큐(Queue) / 덱(Deque) 1. 큐(Queue)란?먼저 넣은 데이터가 먼저 나오는 선입선출 (First In First Out) 방식의 자료구조. 후입선출(LIFO) 방식의 스택(Stack)과 반대되는 개념이다. 자료를 넣는 것을 '밀어넣는다' 하여 푸시(push)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 팝(pop)이라고 한다. 2. STL의 Queue/Priority Queue1) Queue[소스][결과] 2) Priority Queue : 기존 큐에 정렬 기능이 추가된 자료구조[소스][결과] 3. 덱(Deque)란?Double-ended Queue의 약자로 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조이다. 큐와 스택을 합친 형태로 생각할 수 있다. 4. STL의 Deque[소스][결과] 2017. 3. 13.