jvm 2

Garbage Collector

👣 개념 가비지 컬렉터는 JVM에 구성요소로서 RunTime Data Area 내부의 Heap 영역에 할당된 메모리 영역을 해제하기 위해 존재하는 장치다. Stack 영역과 달리 Heap 영역의 메모리는 의도적인 메모리 해제 과정을 거치지 않으면 결국 사용하지 않음에도 불구하고 사용할 수 없는 메모리 공간으로 가득찬다. 이를 메모리 누수라고 한다. 이런 상황을 피하기 위해 C 언어에서는 개발자가 직접 해제하는 방식을 택하고 있는데 이는 비즈니스 코드 이외의 코드도 작성해야 하기에 이를 불필요한 Cost가 많이 소모된다. 자바의 경우 JVM의 Garbage Collector가 이런 과정을 자동화하게 된다. 👣 Stop The World GC는 사용자가 직접 상황 판단을 하는 것이 아니다 보니 성능에 문제를..

Java 2023.07.17

Java 코드 작성부터 실행까지

👣 개요 자바 코드를 작성하고 해당 코드를 실행시키는 과정에 대해 작성하는 게시물이다. 👣 Java Compiler 자바 소스 코드(1)는 그 자체로 컴퓨터가 이해할 수 없기 때문에 컴퓨터가 이해할 수 있는 형식(2)으로 변환해야 한다. // 자바 소스 파일(Swap.java) --- (1) class Swap { public static void main(String[] args) { int[] testCase1 = {1, 26}; // swap : 배열의 특정 인덱스쌍의 위치를 바꾸는 함수. swap(testCase1, 0, 1); // 결과물 출력. for (int item : testCase1) { System.out.println(item); } } public static void swap(i..

Java 2023.07.17