មេរៀនទី៦: JVM

JVM (Java Virtual Machine) មានលក្ខណ:ពិសេសសម្រាប់ runtime environment ក្នុង java bytecode នឹងប្រត្តិបត្តិ។
តើ JVM ជាអ្វី?
វាជា:
1.    A specification កន្លែងធ្វើការ Java Virtual Machine ប៉ុន្តែការផ្តល់គឺឯករាជ្យ ដើម្បីជ្រើសរើស algorithm។ វាអនុវត្តន៍ដោយផ្តល់ក្រុមហ៊ុន Sun និងក្រុមហ៊ុនផ្សេងទៀត។
2.    An implementation វាអនុវត្តន៍ដឹងដូច JRE (Java Runtime Environment)។
3.    Runtime Instance លោកអ្នកសរសេរ java command កាលណាក៍បាន  លើ command prompt ដើម្បីរត់ java class និងជំនួន JVM ត្រូវបានបង្កើត។
តើវាធ្វើការអ្វី?
JVM perform ប្រត្តិបត្តិការណ៍ដូចខាងក្រោម:
•    Loads code
•    Verifies code
•    Executes code
•    Provides runtime environment
JVM ផ្តល់និយមន័យ:
•    តំបន់ Memory area
•    Class file format
•    បង្កើត Register set
•    Garbage-collected heap
•    Fatal error reporting ។ល។

Internal Architecture របស់ JVM
ស្វែងយល់ពី internal architecture របស់ JVM វាផ្ទុក classloader, memory area, execution engine ។ល។
Java1) Classloader:
Classloader គឺជា subsystem របស់ JVM ត្រូវបានប្រើសម្រាប់ load class files។
2) Class(Method) Area:
តំបន់ Class(Method) Area ផ្ទុកក្នុង class structures ដូចជា runtime constant pool, field  និងmethod data។
3) Heap:
វាជា runtime data ក្នុង object។
4) Stack:
Java Stack ផ្ទុក frame វាដាក់លើ local variable។
5) Program Counter Register:
PC (program counter) register វាផ្ទុក address របស់ Java virtual machine instruction
6) Native Method Stack:
វាផ្ទុកបណ្តា method ទាំងអស់ត្រូវបានប្រើ ក្នុង application។
7) Execution Engine:
វាផ្ទុក:
1) A virtual processor
2) Interpreter: អាន bytecode ហើយ execute។
3) Just-In-Time(JIT) compiler: វាត្រូវបានប្រើ ដើម្បីផ្តល់ performance វាជាផ្នែកមួយ compile នៃ byte code។