728x90
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 32 33 | JAVA Source : 사용자가 작성한 JAVA 코드 JAVA Compiler : JAVA 코드를 Byte Code로 변환 Class Loader - JVM 내에 Class를 Load - 연결을 통해 적절히 배치하는 작업(linking) - Runtime 시 동적으로 읽어들여 배치(해당메모리) Runtime Data area - JVM이 OS 위에서 실행되면서 할당받은 메모리 영역 - Method Area, Heap, Stack, PC Registers, Constant Pool, Native Method Stack Area Method Area - 클래스 정보, static 메서드와 필드 정보, 멤버변수 정보, static 변수 정보, 바이트 코드 등을 보관 - JVM 시작 시 생성되며, 프로그램 종료 시 해제 - 모든 쓰레드에서 공유 Stack Area - 메서드 호출 시 데이터 영역이 생성 - 지역변수, 매개변수, 임시변수, 레퍼런스 변수 - 연산 중 발생하는 임시 데이터 저장 - { } 또는 메서드가 끝날 때 해제 - 자동 초기화 되지 않음(쓰레기 값) PC Registers - 현재 수행 중인 JVM의 명령 주소를 저장 - CPU에서 명령어를 수행하면 CPU는 수행하는 동안 필요한 정보를 CPU내의 기억장치(Register)에 저장 - 연산 결과값을 전달하기 전에 저장하는 CPU내의 기억장치 Native Method Stack Area - JAVA외의 언어로 작성된 Native 코드를 위한 Stack - JNI(Java Native Interface)를 통해 호출되는 c/c++ 등의 코드를 수행하기위한 Stack - 타 언어의 매개변수, 지역변수 등을 저장 Execution engine - Class Loader를 통해 JVM 내의 바이트 코드를 실행 - 명령어 단위로 실행 | cs |
반응형
'SKILL > JAVA' 카테고리의 다른 글
자바 제네릭 삽입, 삭제, 검색...직접 구현 (0) | 2017.12.20 |
---|---|
자바 하노이의 탑 예제 (0) | 2017.12.20 |
자바 Queue 기본 예제 (0) | 2017.12.19 |
자바 Stack 기본예제 (0) | 2017.12.19 |
자바 IP관련 클래스 : InetAddress (0) | 2017.12.19 |