Java JVM එක වැඩකරන්නේ කොහොමද ?

Java යනු ලෝකයේ බහුලව භාවිතා වන programming language එකක් වන අතර, එය බොහෝ දෙනෙකුට ආකර්ෂණීය වන්නේ එහි "write once, run anywhere" (WORA) යන ප්රතිපත්තිය නිසායි. මෙය සිදුවන්නේ Java Virtual Machine (JVM) නිසායි. JVM යනු Java programs ධාවනය කිරීමට භාවිතා වන virtual environment එකක් වන අතර, මේ article එකෙන් අපි බලමු JVM එක ක්රියාත්මක වන ආකාරය ගැන සරලව සහ ගැඹුරින්, සිංහල සහ English යන භාෂා දෙකම යොදාගෙන.
JVM එක යනු මොකක්ද? (What is JVM?)
JVM යනු Java Runtime Environment (JRE) හි ප්රධාන අංගයකි. එය Java bytecode එක physical machine එකක ධාවනය කළ හැකි machine code බවට පරිවර්තනය කරන software layer එකකි. මෙහි විශේෂත්වය වන්නේ එය platform-independent වීමයි. එනම්, ඔබ Java program එකක් Windows, Linux හෝ Mac වැනි ඕනෑම operating system එකක ධාවනය කළ හැකියි, JVM එක එම OS එකට අනුව bytecode එක interpret කරන නිසා.
JVM එකේ ව්යුහය (Structure of JVM)
JVM එක තුළ ප්රධාන කොටස් කිහිපයක් තිබෙනවා. මේවා තේරුම් ගැනීමෙන් එය ක්රියාත්මක වන ආකාරය ගැන හොඳ අවබෝධයක් ලබාගත හැකියි.
- Class Loader
Java program එකක් run කරන විට පළමුව Class Loader එක ක්රියාත්මක වෙනවා. මෙය Java source code එක compile වී තිබෙන .class files (bytecode) එක memory එකට load කරනවා. මෙහිදී bootstrapping, linking සහ initialization යන steps තුනක් සිදුවෙනවා. - Memory Area
JVM එකේ memory එක කොටස් කිහිපයකට බෙදෙනවා:- Method Area: Class structures, methods, සහ fields ගබඩා වෙනවා.
- Heap: Objects සහ ඒවායේ data ගබඩා වෙනවා.
- Stack: Method calls සහ local variables ගබඩා වෙනවා.
- PC Register: Current instruction එක track කරනවා.
- Execution Engine
මෙය JVM එකේ හදවත ලෙස හැඳින්විය හැකියි. Execution Engine එක bytecode එක run කරනවා. මෙහිදී Just-In-Time (JIT) Compiler එක විශේෂයි. JIT එක bytecode එක machine code බවට පරිවර්තනය කරනවා, එයින් performance එක වැඩි වෙනවා. - Garbage Collector
Heap memory එකේ භාවිතා නොවන objects ඉවත් කිරීම මෙයින් සිදුවෙනවා. මේකෙන් memory එක optimize වෙනවා සහ program එක crash වීම වළක්වනවා.
JVM එක වැඩ කරන ආකාරය (How JVM Works)
Java program එකක් run කරන විට මෙන්න මෙහෙම වෙනවා:
- ඔබ Java code එක compile කරනවා javac compiler එක භාවිතයෙන්. එවිට .java file එක .class file එකකට (bytecode) පරිවර්තනය වෙනවා.
- JVM එක එම bytecode එක load කරනවා Class Loader එක හරහා.
- Bytecode එක memory එකට ගිය පසු Execution Engine එක එය interpret කරනවා හෝ JIT Compiler එක හරහා machine code බවට හරවනවා.
- ඒ machine code එක physical hardware එකේ ධාවනය වෙනවා.
JVM එකේ වාසි (Advantages of JVM)
- Portability: එකම bytecode එක විවිධ platforms වල run කළ හැකියි.
- Security: Sandbox environment එකක් ලෙස JVM එක ක්රියා කරන නිසා malicious code එකකින් system එකට හානි වීම අවමයි.
- Performance: JIT Compiler එක නිසා ඉතා ඉක්මනින් code එක execute වෙනවා.
අවසාන වශයෙන්
JVM එක ගැන ගැඹුරින් තේරුම් ගැනීමෙන් Java programming එකේ බලය සහ එහි flexibility එක ගැන හොඳ අවබෝධයක් ලැබෙනවා. එය තනිකරම Java code එක machine එකකට ගැලපෙන ආකාරයට පරිවර්තනය කරන magic box එකක් වගේ. ඔබට තවත් details අවශ්ය නම්, specific areas (වගේ Class Loader හෝ Garbage Collection) ගැන වෙනම බලන්නත් පුළුවන්. JVM එක ගැන මේ basic understanding එක තිබුණම ඔබේ Java journey එක තවත් රසවත් වේවි!