2. JVM 뜯어보기 - Java Runtime Data Area
·
Java
Java Runtime Data Area프로세스 전역 공유 영역1. Heap area (프로세스 전역)로드 후, JVM이 클래스 형식의 객체를 생성한다. 객체는 힙 영역의 메모리 할당메서드 호출 시 지역 변수, 파라미터 중 Reference Type이 존재하는 경우, 힙 영역에 메모리가 할당된다.Stack > Stack Frame > Local Variables 배열 에서 힙 영역 메모리 참조Primitive Type의 경우 힙 영역이 할당 되지 않으며, 값이 그대로 들어간다.Static Object, String Constant Pool(Interned String) 역시 힙 영역에 존재한다.HotSpotJVM에서 JAVA 7 이전에는 PermGen에 존재JAVA 8 이후에는 힙 영역에 존재한다.GC의..
1. JVM 뜯어보기 - Class Loader
·
Java
JVM (Java Virtual Machine)JVM은 크게 세 가지 subsystem으로 나뉜다.Class LoaderRuntime Data AreasExecution Engine1. Class Loader동적 로딩 (Dynamic Loading) : 필요한 바이트 코드만을 로딩한다.컴파일시점이 아닌 실행 시점에 클래스를 로딩할 수 있게 해주는 기술이다.자바에서 동적 로딩이 가능한 이유가 바로 Class Loader 덕분이다.바이트 코드(.class 파일)을 JVM에 적재Loading → Linking → Initialization 을 차례대로 수행함2. Runtime Data AreasJVM이 프로그램 실행을 위해 OS로부터 할당 받은 메모리 영역모든 스레드 공유(프로그램 전역) : Heap, Met..
0. JVM 기초와 자바의 컴파일러 및 인터프리터에 관하여
·
Java
JDK, JRE, JVMJDK(Java Development Kit)는 Java 환경에서 돌아가는 프로그램을 개발하기 위해 필요한 툴을 모아놓은 소프트웨어 개발 키트(SDK)이다. JRE(Java Runtime Environment)는 Java가 실행되기 위한 환경을 제공한다. JVM과 프로덕션 환경에서 제공되는 모든 클래스 라이브러리 및 국제화나 IDL 라이브러리와 같이 개발자들에게 도움이 되는 라이브러리로 구성된다. JVM(Java Virtual Machine)은 Java 애플리케이션이 구동되기 위한 기반이 되는 가상 머신이다. Java는 OS 위에서 구동되지 않으며, JVM이라는 가상 머신 위에서 실행된다.https://www.edureka.co/blog/java-architecture/ 플랫폼 ..