목록Programing & Coding (86)
S E P H ' S
Stack, Queue 스택(Stack) 선형 자료구조의 일종으로 마지막에 저장한 데이터를 가장 먼저 꺼내는 LIFO(Last In First Out) 구조입니다. 큐(Queue) 선형 자료구조의 일종으로 처음 저장한 데이터를 가장 먼저 꺼내는 FIFO(First In First Out) 구조입니다. Java에서 Stack 과 Queue의 구현 스택은 순차적으로 데이터를 추가하고 삭제하기 때문에 배열 기반인 ArrayList와 같은 컬렉션 클래스로 구현하는 것이 적합합니다. 큐는 데이터를 꺼낼 때 항상 첫번째 데이터를 삭제하기 때문에 배열 기반의 컬렉션보다 데이터의 추가 삭제가 쉬운 LinkedList로 구현하는 것이 적합합니다. Stack 메소드 메소드 설명 boolean empty() Stack이 비..
Collection Java Collection 에는 List, Set, Map, Stack, Queue 등의 인터페이스를 기준으로 여러 구현체가 존재합니다. Collection을 사용하는 이유는 다수의 데이터를 다루는데 표준화된 클래스들을 제공해서 데이터 구조를 직접 구현하지 않고도 편하게 사용할 수 있기 때문입니다. 또한 배열과는 다르게 객체를 보관하기 위한 공간을 미리 정하지 않아도 되기 때문에 상황에 따라 객체의 수를 동적으로 정할 수 있습니다. 이로써 프로그램의 공간적 효율성을 높일 수 있습니다. Collection 인터페이스가 Iterable 인터페이스를 상속하는 이유 Iterable 인터페이스 안에는 iterator 메소드가 추상 메소드로 선언 되어 있습니다. Iterable의 역할은 하위 ..
가비지 컬렉션, GC(Garbage Collection) GC는 메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능입니다. Minor GC 새로 생성된 대부분의 객체(Instance)는 Eden 영역에 위치합니다. Eden 영역에서 GC가 한 번 발생한 후 살아남은 객체는 Survivor영역 중 하나로 이동됩니다. 이 과정을 반복하다가 계속해서 살아남아 있는 객체는 일정시간 참조되고 있다는 뜻이고 Old영역으로 이동됩니다. 이를 Promotion이라고 합니다. Major GC Old영역에 있는 모든 객체들을 검사해 참조되지 않은 객체들을 한꺼번에 삭제합니다. 시간이 오래 걸리고 실행 중 프로세스가 정지됩니다. 이것을 'stop the worl..
자바 가상 머신 (Java Virtual Machine: JVM) 이전 포스트에서 자바 가상 머신(이하 JVM)에 대해 짧게 언급이 되었습니다. 자바로 코드를 작성(Test.java)하고 이를 컴파일 하면 바이트 코드(Test.class)가 만들어지는데 이는 실행을 위한 기계어가 아닌 중간 기계어입니다. 이를 실행 시키기 위해 운영체제 마다 자바 가상 머신을 사용해 실행 파일을 만들어 실행을 합니다. 이번 포스팅에서는 JVM에 대해서 자세히 알아보도록 하겠습니다. 자바프로그램 실행과정 개요 1. 프로그램이 실행되면 JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 2. 자바 컴파일러(javac)가 자바 소스코드(.java)를..