Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 삼성청년SW아카데미
- java
- web
- Disjoint-set
- Web-BackEnd
- 완전탐색
- ==
- ssafy서울
- back-end
- 최소신장트리
- Union-FInd
- bruteforce
- SSAFY
- 시뮬레이션
- Graph
- Spring Framework
- 그래프
- Floyd-Warshall
- 구현
- HashMap
- BFS
- MST
- Integer
- DFS
- cycle
- Kruskal
- spring
- equals
- Prim
- spring-boot
Archives
- Today
- Total
devlog
JVM (Java Virtual Machine) : 자바 바이트 코드를 실행한다 본문
JVM 구조
Class Loader
- .class 에서 바이트코드를 읽고 메모리에 저장
- Loading : 클래스를 읽어옴
- Linking : 레퍼런스 연결
- Initialization : static 값 초기화 및 변수에 할당
Memory
공유자원
- 메소드 영역 : 클래스 수준의 정보(클래스 이름, 부모 클래스 이름, 메소드, 변수) 저장
- 힙 영역 : 객체를 저장
특정 스레드마다 가지고 있는 자원
- 스택 영역 : 스레드마다 런타임 스택을 생성, 메서드 호출을 스택 프레임이라고 부르는 블럭으로 쌓는다. 스레드 종료시 런타밈 스택 사라짐
- PC(Program Counter) 레지스터 : 스레드 내 현재 실행할 스택 프레임을 가리키는 포인터 생성
- 네이티브 메소드 스택
- 네이티브 메소드 : 메소드에 네이티브 키워드 + 구현을 Java 가 아닌 C, C++로 한 것, ex) Thread.currentThread()
Execution Engine
- Interpreter : 바이트 코드를 한 줄씩 실행
- JIT Compiler : 인터프리터의 효율을 높이기 위해, 반복되는 코드를 발견하면 JIT 컴파일러가 반복되는 코드를 모두 네이티브 코드로 변환, 인터프리터는 네이티브 코드로 컴파일된 코드를 바로 사용
- GC(Garbage Collector) : 더 이상 참조되지 않는 객체를 모아서 정리한다.
'프로그래밍언어 > Java' 카테고리의 다른 글
Class Loader : 자바 바이트 코드를 메모리에 올린다 (0) | 2020.08.09 |
---|---|
JVM, JRE, JDK : 자바코드를 실행한다. (0) | 2020.08.09 |
Integer 비교하기 == 와 .equals() (0) | 2020.06.26 |
Comments