Skip to main content

JVM (Java Virtual Machine) ගැන මූලික අවබෝධයක්

ටික දවසකට පස්සේ ඔන්‍න‍ තවත් පාඩමක් අරන් ආවා. :)
කලින් පාඩම අවසානයේදී මං කිවුව වගේම ජාවා වැඩසටහනක් පරිගණකයේදී ක්‍රියාත්මක වෙන්නේ කොහොමද කියල පැහැදිලි කරන්නයි මේ සූදානම.
මං හිතනවා මේ හැමෝම Operating System, එහෙමත් නැත්නම් මෙහෙයුම් පද්ධති කියන දේ දන්නවා කියල...
උදාහරණයක් විදියට, Windows XP, Windows Vista, Windows 7, Windows 8, Mac OSX, Ubuntu, Solaris, Android වගේ නම් වලින් අපි අහල දැනගෙන තියෙන්නේ මෙහෙයුම් පද්ධති කිහිපයක්.
මේ මෙහෙයුම් පද්ධති බොහොමයක් පරිගනකයකදී ක්‍රියාත්මක වෙන්නේ එකිනෙකට වෙනස් ආකාර වලින්. ඒ වගේමයි ඒවා තුල ක්‍රියාත්මක කල හැකි මෘදුකාංගත් එකිනෙකට වෙනස්.
මේ නිසාම බොහොමයක් මෘදුකාංග නිපදවන්නන්ට සිදු වෙලා තියෙනවා ඒ ඒ මෙහෙයුම් පද්ධතියට සරිලන විදියට එකම මෘදුකාංගය වෙන වෙනම කේත කරන්නට.
නමුත් ජාවා පරිගණක භාෂාව භාවිතයෙන් නිපදවන මෘදුකාංග වලට මේ ගැටළුව උත්ගත වෙන්නේ නැහැ!
ජාවා මේ තරම් විශේෂ වෙන්න මේකත් එක් හේතුවක්.

මුල් පාඩම් වලදී මං සඳහන් කල විදියට, පරිගණකයක් හඳුනන්නේ 1 සහ 0 පමණයි. හරියටම කිවුවොත් අදාල අවස්ථාවේදී පරිගණකයේ පරිපථ හරහා විදුලිය ගමන් කරනවද නැද්ද කියන එක තමයි 1 සහ 0න් නිරුපනය කරන්නේ. 1න් විදුලිය ගමන් කිරීමත්, 0න් විදුලිය ගමන් කරන්නේ නෑ කියන එකත් නිරුපනය කරනවා. සෑම පරිගණක වැඩසටහනක්ම මේ ආකාරයට පරිගණකයට තේරුම් ගත හැකි ආකාරයේ උපදෙස් මාලාවකින් සමන්විතයි. අපි ජාවා වලින් නිර්මාණය කරන වැඩසටහන මේ ආකාරයට පරිගණකයට තේරුම් ගන්න පුළුවන් විදියේ උපදෙස් මාලාවක් බවට පත්කර දෙන්නේ Java Compiler (javac.exe) වැඩසටහන මගිනුයි.


මේ විදියට අපිට ලැබෙන .class ෆයිල් එක ඕනෑම මෙහෙයුම් පද්ධතියක සෘජුවම ක්‍රියාත්මක කරන්නට හැකියාවක් අපිට නෑ. මොකද සෑම මෙහෙයුම් පද්ධතියක්ම ක්‍රියාත්මක වෙන්නේ ඊටම අනන්‍ය වූ ක්‍රමයකටයි. ජාවා වැඩසටහන මේ කිසිම ක්‍රමවේදයකට නොගැලපෙන වෙනමම වැඩසටහනක්. 


ඉහත රුපයේ දක්වලා තියෙන විදියට අපේ වැඩසටහන කිසිම මෙහෙයුම් පද්ධතියකට ගැලපෙන්නේ නෑ. අපේ ජාවා වැඩසටහන ක්‍රියාත්මක කරවන්නට හැකියාව ලබා දෙන්නේ ඒ ඒ මෙහෙයුම් පද්ධතියට අදාලව Oracle සමාගම වෙතින් ලබා දෙන JVM එක හෙවත් Java Virtual Machine එකයි. JVM එක install කරලා නැත්නම් කිසිම පරිගනකයක ජාවා වැඩසටහනක් ක්‍රියාත්මක කරවන්නට බෑ. JVM එක අපේ ජාවා වැඩසටහනත් මෙහෙයුම් පද්ධතියත් අතර සම්බන්ධීකරක්යෙක් විදියට කටයුතු කරනවා.


JVM එක install කලාට පස්සේ අපේ ජාවා වැඩසටහන සෑම මෙහෙයුම් පද්ධතියක් එක්කම හොඳින් ක්‍රියාත්මක වෙනවා. මොකද ඒ ඒ මෙහෙයුම් පද්ධතිය ක්‍රියාත්මක වෙන විදිය ගැන ජාවා වැඩසටහන දැන සිටියේ නැතත් JVM එක ඒ පිළිබඳව හොඳින් දන්නා නිසයි.
ජාවා පරිගණක භාෂාවට Platform Independent කියන සුවිශේෂී ගුණාංගය ලැබිල තියෙන්නේ මෙන්න මේ JVM එකේ ක්‍රියාකාරීත්වය නිසයි. 
අපි ඊළඟ පාඩමින් ජාවා data types ගැන ඉගෙන ගනිමු.

Comments

Popular posts from this blog

Variables සහ Data Types ( 1 කොටස )

ඔන්න පොරොන්දු වුනා වගේම Data Types ගැන පාඩම අද ඉදිරිපත් කරනවා. Data types කියන්නේ මොනවද කියල විස්තර කරන්න කලින් මෙන්න මේ පොඩි ප්‍රෝග්‍රෑම් එක ක්‍රියාත්මක කරලා බලන්න. මේ code එක Notepad එකට copy කරලා, මම කියල දුන්නු විදියට cmd එකෙන් compile කරලා run කරලා බලන්න. class Test{ public static void main(String args[]){   byte b = 10; short s = 20;   int i = 30; long l = 40;   double d = 34.5;   float f = 55.456f;   char c = 'x';   boolean bool = true;   System.out.println(b);   System.out.println(s);   System.out.println(i);   System.out.println(l);   System.out.println(d);   System.out.println(f);   System.out.println(c);   System.out.println(bool); } } මේ code එක run කලාම පහත දැක්වෙන විදියේ ප්‍රතිපලයක් ලැබේවි. වැඩසටහනේ අන්තිම පේලි...

Variables සහ Data Types (3 කොටස)

Variables සහ Data Types පාඩමේ ඉතිරි කොටස අද අවසන් කරන්න බලාපොරොත්තු වෙනවා.  Variables සහ Data Types 2වන කොටස අවසන් කළේ data types භාවිතයේදී ඇති වන error කිහිපයකින්. අද අපි බලමු ඒ errors ඇති වන ආකාරය සහ ඒවා වලක්වා ගන්නා විදිය. මේ code එක compile කරලා බලන්න. class A { public static void main(String[] args) { byte b = 200; System.out.println(b); } } compile කරන විට පහත දැක්වෙන ආකාරයේ error එකක් ඒවි. හොඳින් බලන්න error එකේ කියල තියෙන්නේ මොකක්ද කියලා.  " A.java:3: error: possible loss of precision " කියලයි error  එක තියෙන්නේ. මේ කියන්නේ, A.java කියන ෆයිල් එකේ 3වන පේලියේ  possible loss of precision කියන   error එකක් තිබෙනවා කියලයි. ඊට යටින් ඒ error  එක ඇති වුන තැන පෙන්වනවා. ඊළඟ පේළියෙන්  අදාල error එක පිලිබඳ තවත් තොරතුරක් ලබා දෙනවා. required: byte - අවශ්‍ය කරන්නේ byte වර්ගයේ දත්තයක්. found:    int - හමුවූයේ int වර්ගයේ දත්තයක්. මේ error report එක තුල error එක ඇති වෙන්න හේතුව පැහැදිලිවම සඳහන් කරලා තිබෙනවා. Java ඉගෙන ...