본문 바로가기

jvm2

JVM 아키텍처 / Garbage Collection 모든 Java 애플리케이션은 JVM 환경에서 작동된다. 본 포스트에서는 JVM 아키텍처와 구성 요소, 그 중에서도 특히 Garbage Collection(이하 GC)와 관련된 Heap area에 대해 자세히 알아보고, GC의 기본적인 원리에 대해서도 정리해보고자 한다. JVM 아키텍처 JVM은 Java Virtual Machine의 줄임말이며, Java Compiler에 의해 컴파일되어 생겨난 Bytecode(.class 파일)를 OS에 맞게 해석하고 실행하는 역할을 수행한다. 즉 "Java에서 프로그램을 실행한다"는 것은, 컴파일 과정을 통하여 생성된 class 파일을 JVM으로 로딩하고 Bytecode를 해석(interpret)하는 과정을 거쳐 메모리 등의 리소스를 할당하고 관리하며 정보를 처리하는 .. 2019. 4. 5.
JVM, JRE, 그리고 JDK의 개념 JVM - JVM (Java Virtual Machine)은 추상적인(abstract) 머신이다. 즉 JVM이 가상(virtual) 머신인 것은 그것이 물리적으로는 존재하지 않기 때문이다. - JVM은 Java 바이트코드가 실행될 수 있는 런타임 환경을 제공하는 명세(specification)다. (ex. HotSpot: JVM 구현체) - Java가 아닌 다른 언어(ex. Kotlin, Scala, Groovy 등)로 쓰여진 프로그램도 Java 바이트코드로 컴파일 되어 JVM이 실행할 수 있다. - JVM은 다양한 하드웨어와 소프트웨어 플랫폼에서 이용할 수 있다. JVM, JRE, JDK는 플랫폼 의존적인데, 각 OS의 설정이 서로 다르기 때문이다. 하지만 Java 언어 자체는 플랫폼 독립적이다. - .. 2019. 2. 4.