[Java]JVM과 Java 동작원리

김피자·2023년 1월 16일
0

자바

목록 보기
4/9

Java Virtual Machine

: JVM은 java byte code를 실행하는 가상머신
: 인터프리터(프로세스가 코드를 실행시키는 방식)나 JIT컴파일(또는 동적번역, 실제 실행되는 시점에 기계어로 컴파일)방식으로 다른 컴퓨터에서 바이트코드를 실행할 수 있도록 구현
: 플랫폼에 독립적

https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html

  • Class Loader : java 컴파일러 소스를 컴파일 해 만들어 낸 바이트코드 클래스를 엮어 Runtime Data Area 형태로 메모리에 적재하고 메타데이터 관리

  • Execution Engine : 메모리에 적재된 클래스들을 기계어로 번역하여 명령어 단위로 실행

  • Garvege Collector : 객체 생명주기 관리, Heap 메모리 영역에 생성된 객체들 중 유효한 참조가 없는 객체를 자동으로 탐색하고 제거

  • Class Loader : 런타임 중 JVM의 메소드 영역에 동적으로 java 클래스를 로드하는 역할

  • Method Area : 클래스 멤버 변수, 메소드 정보, 타입 정보, 상수 풀, 정적 변수 등이 생성되는 영역

  • Heap Area : 동적으로 생성된 객체와 배열이 저장되는 Garbage Collector의 대상이 되는 영역

  • JVM Language Stacks : 지역 변수, 파라미터 등 생성되는 영역

  • Java Thread : 동작하고 있는 프로그램을 프로세스라고 하는데, 보통 한 개의 프로세스는 한 가지 일을 하지만, 쓰레드를 이용하면 한 프로세스 내에서 두 가지 또는 그 이상의 일을 동시에 할 수 있음

  • Program Counter Register : 현재 쓰레드가 실행되는 부분의 주소와 명령 저장

  • Native Method Stack : 자바 외의 언어로 작성된 네이티브 코드를 위한 메모리 영역

Java 동작원리

profile
제로부터시작하는코딩생활

0개의 댓글