일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- MethodArea
- LSP
- StackArea
- 운영체제
- 상속관계
- 바이트코드
- Operating System
- 이노베이션아카데미
- generics
- 포함관계
- 라피신
- 참조변수
- java
- abstract
- 42서울
- jdk
- 제네릭스
- RDD
- JIT
- classloader
- 도커네트워크
- pg_hba.conf
- JVM
- 42seoul
- Compiler
- HeapArea
- 자바컴파일러
- javac
- SRP
- la-piscine
- Today
- Total
목록JVM (2)
while(1) 작심삼일();

직전 포스팅에 이어서 JVM을 조금 더 자세히 설명하자면 JVM은 1. .class파일(바이트코드)을 ClassLoader를 통해 동적으로 클래스를 Runtime Data Area의 Method Area에 로드한다. 2. Execution Engine이 바이트코드를 두 가지 방식을 이용하여 읽는다. 2.1. 인터프리터 방식 : 한줄씩 해석, 실행하는 방식으로 속도가 느림 2.2. JIT 컴파일러 : 프로그램을 실행하는 시점(바이트코드 실행시점)에 각 OS에 맞는 Native Code로 변환하여 읽는다. 매번 같은 코드를 해석하지 않고 캐싱을 하기 때문에 바뀐부분에 대해서만 컴파일을 한다. 속도는 빠르나 비용이 소요되기 때문에 인터프리터 방식으로 진행을 하다 특정 기준이 넘어가면 JIT 컴파일러를 사용한다..

JDK(Java Development Kit) 자바 개발 키트를 의미한다. JRE + 개발을 위해 필요한 컴파일러(javadoc, jar, javap, javac) 등이 포함되어 있다. JRE(Java Runtime Environment) 컴파일된 자바 프로그램을 실행시키는 자바 환경을 의미한다. JVM이 자바 프로그램을 실행시킬 때 필요한 라이브러리와 파일을 가지고 있다. 자바 실행을 위해서는 필수적이고, 개발을 하려면 JDK가 필요하다. JVM(Java Virtual Machine) .java 소스코드로부터 컴파일된 .class 바이너리 파일을 실행시킬 수 있다. 자바로 작성된 모든 애플리케이션은 JVM 위에서 작동된다. 다른 언어와 다르게 자바 애플리케이션은 JVM이랑 만 상호작용을 하기 때문에 O..