Java කියන්නෙ ලෝකෙ දැනට භාවිතා කරන ජනප්රියම ක්රමලේඛ භාෂාවක්. Java යනු ඉගෙනගන්නට පහසු මෙන්ම විවිධ ක්ෂේත්ර ගණනාවක භාවිත වන භාෂාවක්. ඉතින් මම මේ පාඩම් මාලාව මගින් මුල සිට ඉතා සරල ආකාරයෙන් ඕනෑම කෙනෙකුට තේරුම් ගත හැකි ආකාරයෙන් java මගින් programming කරන හැටි කියල දෙන්න බලාපොරොත්තු වෙනවා. තවදුරටත් මේ පාඩම් මාලාව මගින් Oracle ආයතනයෙන් පවත්වනු ලබන 1Z0-851 OCPJP (Oracle Certified Professional JavaSE Programmer) කියන විභාගයට මුහුණ දීමට හැකි ආකාරයෙන් පාඩම් ඉදිරිපත් කිරීමටත්, ප්රශ්න සාකච්චා කිරීමටත් බලාපොරොත්තු වෙනවා.
පරිගණක ක්රමලේඛනය පිලිබඳ ඉගෙනගන්න කැමති ඕනෑම අයෙක්ට
මෙම blog එක පරිහරණය කිරීමට ආරාධනා කරනව.
අපි හැමෝම එකිනෙකා අතර
අදහස් හුවමාරු කරගැනීම සඳහා විවිධ භාෂා යොදාගන්නව. අපේ රටේ නම් ඉතින් සිංහල, දෙමළ,
ඉංග්රීසි වගේ භාෂා පාවිච්චි වෙනවනෙ. ඒ වගේ ලෝකෙ විවිධ මිනිස්සු විවිධ භාෂා වලින්
අදහස් හුවමාරු කරගන්නව. සත්තුත් ඒ ඒ අයට ආවේණික වූ ක්රම වලින් අදහස් හුවමාරු
කරගන්නව. ඉතින් අපිට පරිගණකය ලවා යම් කිසි දෙයක් කරගන්න අවශ්ය නම් පරිගණකය සමඟ
අදහස් හුවමාරු කරගන්න සිදුවෙනවා. නමුත් ඒ කාර්යය අපි භාවිත කරන භාෂා වලින් ඉටු
කරගන්න අමාරුයි. මොකද පරිගණකයට ඒ භාෂාවන් තේරෙන්නේ නැති නිසා. පරිගණකයට තේරෙන එකම
භාෂාව තමයි binary language (machine language) එක. මේ භාෂාවට අයත්
වෙන්නෙ 1 හා 0 කියන ඉලක්කම් දෙක විතරයි. ඉතින් අපිට කරගන්න ඕනේ සෑම කාර්යයක් ගැනම
පරිගණකයට දැනුම් දෙන්න වෙන්නෙ මේ ඉලක්කම් දෙක භාවිතයෙන් විතරයි. ඔයගොල්ලෝ binary numbers ගැන දන්න හින්ද මම ඒ ගැන වැඩි විස්තර කතා කරන්න යන්නේ
නෑ. කොහොම වුනත් මුල්ම කාලයේ පරිගණක ක්රමලේඛනය සිදු වුණේ මේ machine language එක භාවිතයෙන් තමයි. නමුත් මෙම machine language ඇසුරෙන් පරිගණකය හැසිරවීම පහසු වුණේ නම් නෑ. ඒ ගැන ඉතින්
මම අමුතුවෙන් කියන්න ඕනෙ නෑනෙ. මේ නිසා පරිගණක ඉංජිනේරුවරු වඩාත් පහසුවෙන් මිනිසාට
හැසිරවිය හැකි පරිගණක භාෂා තනන්නට උනන්දු වුණා.
මේ අනුව මිනිසාට කියවා
තේරුම්ගත හැකි භාෂාවක් ලෙස assembly
language සොයා ගැනුණා. මෙම assembly language මගින් ලියන ලද කේත පරිගණකයට තේරුම් ගත හැකි ආකාරයට machine language එකට හැරවීම සඳහා assembler නම් පරිගණක වැඩසටහනක්
භාවිත වුණා. මෙම භාෂාව machine
language වලට වැඩ මිනිසාට සමීප
වුණත් මෙමගින් ලියන ලද පරිගණක වැඩසටහන් ඉතා දිගු හා තේරුම් ගැනීමට අපහසු වූ අතර
මෙම වැඩසටහන් ක්රියාත්මක වීමේදී පරිගණකයේ දෘඩාංග සැකැස්ම (computer architecture) බලපෑවා. මේ නිසා පරිගණක ක්රමලේඛ ශිල්පීන් හට දෘඩාංග පිළිබඳවද සැලකිලිමත්
වීමට සිදු වුණා. මේ නිසා තවත් ඉදිරියට යමින් ඉංග්රීසි භාෂාවට වඩාත් සමීප FORTAN, COBOL, C, Pascal වගේ භාෂා බිහි වුණා. මෙම
භාෂා high-level languages ලෙසද හඳුන්වනවා. මෙම
භාෂා වලින් ලියන ලද කේත machine
language බවට හැරවීම සඳහා compiler හෝ interpreter
යන වැඩසටහන් උපයෝගී
වුණා. මෙම භාෂා වලට තවත් විශේෂ අංග (Object
oriented concepts, GUI features) එකතු වීමෙන් C++, Java, Visual C++, C#.net වගේ භාෂාවන් බිහි වුණා.
මම මේ සඳහන් කලේ පරිගණක
භාෂා වල ව්යාප්තිය පිලිබඳ කෙටි සටහනක් විතරයි. මේ පිලිබඳ වැඩි විස්තර ඕනෙ තරම්
විවිධ වෙබ් අඩවි වල තියෙනව. අවශ්ය අය කියවල විස්තර හොයාගන්න. හොඳයි, අපේ මාතෘකාව java නෙ. අපි දැන් java ගැන කතා කරමු.
එහෙනම් java හැදුන තැනින්ම පටන්ගමුකො........
1991 ජනවාරි මාසෙ Sun Microsystems වල පරිගණක විද්යාඥයෝ කිහිප දෙනෙක් ඇමරිකාවේ කොලරාඩෝ වලට
එකතු වුණා විශේෂ ව්යාපෘතියක් ගැන සාකච්චා කරන්න.මෙම ව්යාපෘතිය කිරීම සඳහා පරිගණක
ක්රමලේඛ භාෂාව තෝරාගැනීමට භාර වී තිබුණේ James Gosling හටයි. මොහු මේ සඳහා
මුලින්ම C++ භාෂාව තොරගත්තත් පසුව
ඔහුට වැටහුණා C++ මෙම ව්යාපෘතිය සඳහා
යෝග්ය නොවන බව. ඒ නිසා ඔහු මේ සඳහා නව ක්රමලේඛ භාෂාවක් හදුන්වා දුන්නා. අන්න
එහෙම තමයි java බිහි වුණේ. මේ java කියන නම සකස් වුණේ මෙම ක්රමලේඛ භාෂාව සොයාගැනීමට දායක වූ James gosling, Arthur Van hoff සහ Andy bechtolsheim යන අයගේ මුලකුරු වලින්.
Java වල තියෙන වැදගත් කාරණයක්
තමයි java language එක WORA (Write Once Run Anywhere) කියන theory එකට අනුව නිපදවා තිබීම. ඒ කියන්නෙ මෙම භාෂාව භාවිතයෙන්
කේතයක් එක සැරයක් ලිව්වම ඒක ඕනෑම පරිගණකයක ක්රියාත්මක කරන්න පුළුවන් වීම. මේ වගේ
තවත් විශේෂ කිහිපයක්ම මෙම java සතු වෙනවා. ඒවා තමයි,
- · Simple
- · Object oriented
- · Distributed
- · Multithreaded
- · Dynamic
- · Architecture neutral
- · Portable
- · High performance
- · Robust
- · Secure
මෙතන තියෙන වචන වල තේරුම
තවම තේරෙන්නේ නැතුව ඇති. මේවයේ තේරුම මෙතන පැහැදිලි කරන්න ගියොත් ඔයාලට java ඉගෙන ගන්න එකත එපා වෙයි. ඒ නිසා දැන්ම මේවා ගැන හිතන්න යන්න එපා. ඉදිරියට
ඉගෙනගනිද්දී මේවා තේරෙයි. මේවා මෙතන සඳහන් කලේ මේ ගැන අහල තියෙන නිසා ඉදිරි පාඩම්
වලදී මේ වචන මුණගැහුනම නුහුරු ගතියක් ඇතිනොවෙන්න.
තවත් java වල තියෙන සුවිශේෂී ලක්ෂණයක් තමයි java වලින් ලියන ලද කේත machine code එකට හැරවීම සඳහා compilation සහ interpretation යන ක්රම දෙකම භාවිත වීම. Java source code එකක extension එක තමයි .java
ජාවා compiler එක මගින් මෙම source code එක .class extension එක සහිත byte code එකක් බවට පත් කරනවා. මෙම byte code එක interpreter එක මගින් machine
code එක බවට හරවනවා.
දැන් ඔයාල කල්පනා කරනවා ඇති compiler
එකෙයි interpreter එකෙයි වෙනස මොකක්ද කියල. Compiler එකෙන් මුළු source code එකම එකපාර වෙනත් code එකක් බවට හරවල පරිගණකයේ
තැන්පත් කරගන්නව. මෙහිදී නම් byte
code එකට. සමහර languages වල කෙලින්ම machine
code එකට හරවනවා. (උදා: C programming language) interpreter එක කරන්නෙ program එක run කරන ගමන් line එකෙන් line එක machine code එකට හරවන එක. මෙහිදී interpreted code එක පරිගණකයේ තැන්පත්
වීමක් සිදු වෙන්නෙ නෑ. මේ නිසා compile
කරපු code එක නැවත නැවත පාවිච්චි කරන්න පුළුවන් වුණත් interpret කරන එක run කරන හැම වතාවකදීම සිදු කරන්න වෙනවා.
හොඳයි, මේ ලිපියෙන් java සහ වෙනත් programming
languages වල ව්යාප්තිය සිදුවුණු
අන්දම ගැන වැටහීමක් ලැබෙන්න ඇති. අන්තිමට අර කියපු වචන සෙට් එකෙන් එකක් විස්තර කරල
ලිපිය අවසන් කරන්න තමයි හදන්නෙ. ඒක තමයි architecture neutral කියන ඒක. මේකෙන් කියන්නෙ
java program එකක් run කිරීම සඳහා එම program ඒක ලියපු පරිගණකයේ හෝ run කරන පරිගණකයේ දෘඩාංග සැකසීම ප්රශ්නයක් නොවෙන බවයි. මෙයට හේතුව නම්, java programs run වෙන්නෙ Java virtual Machine (JVM) කියන program එකක් මත. මෙය Java runtime environment (jre) කියලත් හඳුන්වනව. JVM එකෙන් වෙන කාර්යයන්
පිළිබඳව ඉදිරියේදී ඉගෙන ගන්න පුළුවන්. ඊළඟ ලිපියෙන් ඔබේ පරිගණකයට java ස්ථාපනය කරන හැටි සහ programming
පටන් ගන්න වටපිටාව සකස්
කරගන්න හැටි කියල දෙන්නම්.
වැදගත් ලිපියක්. දිගටම කරන්න සහෝ. මගේන් සුබ පැතුම්..!
ReplyDeleteබොහොම ස්තුතියි ඉශාන් සහෝ... දිගටම රැදී සිටින්න.....
ReplyDeleteඒල
ReplyDeleteඉතාමත් හොඳ ලිපි පෙළක්. කොහොම හරි දිගටම කරගෙන යන්න. මොකද සිංහලෙන් ජාවා ඉගෙන ගන්න තියෙන අවස්ථා අපිට බොහොම අඩුයි. Best Of Luck!
ReplyDeleteGood job bro....thx thx
ReplyDeleteelazz
ReplyDeleteaththatama godak hoda wdasatahank apita godak poroyojawath me lipi.Didatama apita sahayogaya denata kiya mn illlamawa
ReplyDeletethq machan
ReplyDeletethnx bro.tz very useful.keep t up!
ReplyDeleteනියමයි සහෝ...!!!!!! :-)
ReplyDeleteNiyamay
ReplyDeletewell done br.
ReplyDeleteGood job
ReplyDeleteමේ පාඩමට බොහොම ස්තුතියි !
ReplyDeleteමේ පාඩමට බොහොම ස්තුතියි !
ReplyDeletethank u
ReplyDeletegood luck bro.
ReplyDeleteJava ගැන මෙච්චර විස්තර දැනගන්න ලැබුනා. ස්තූතියි.
ReplyDeleteMaru aaaà
ReplyDeleteaththamay saho....meka digatama karagena yanna....great worka ah..matath igena ganna puluwan
ReplyDeleteaththamay saho....meka digatama karagena yanna....great worka ah..matath igena ganna puluwan
ReplyDeletegreat work bro...niyamay....
ReplyDeletegreat work bro...niyamay....
ReplyDeleteKeep it up!
ReplyDeleteKeep it up!
ReplyDeleteme post ekatanam matat comment karanna hituna.
ReplyDeleteniyama wadak awashya karunu kramanukulawama pelagaswala thiyenawa.
digatama karagena yanna.api full suport karanawa.jaya weewa!!!!!!!!!!!!!.............
thanx for your advice
ReplyDeleteThanks. Oya java igena gaththa kohomada?
ReplyDeleteEla, digtma ymu.mmt innw
ReplyDeleteEla bro... java gene mechchara hodata explain karala thiyanne Oya vitharai bro.. niyamai best luck.. aniwaren sup ekak illanna aniwaren deneva bokkenma
ReplyDeleteayye me 2020 mama me wenakm oya tharam lassnata meka gana kiyala dipu kenek hambela ne. jaya wewa ♥♥♥
ReplyDeleteGood Work
ReplyDeleteGood Work
ReplyDeleteGood Work
ReplyDeleteThank you brother
ReplyDeleteගොඩාක් හොඳට ලියලා තියෙනවා.. ඊ ළඟට තියෙන ලිපියට navigation එකකුත් මෙතනින්ම දෙනවනම් වටිනවා.. සුබ පැතුම් !
ReplyDeleteසුපිරි ☺️
ReplyDeleteSuper
ReplyDeletethank you ayye
ReplyDeletegodak watinawa.ty
ReplyDelete