ဂျာဗား (ပရိုဂရမ်မင်းဘာသာစကား): တည်းဖြတ်မှု မူကွဲများ

→‎အကျဉ်းချုပ်: စာလုံးပေါင်း ပြင်ခဲ့သည်
စာတွဲများ: မိုဘိုင်းလ် တည်းဖြတ် မိုဘိုင်းလ် app တည်းဖြတ် အန်းဒရွိုက် app တည်းဖြတ်
→‎ရှင်းလင်းချက်: စာလုံးပေါင်း ပြင်ခဲ့သည်
စာတွဲများ: မိုဘိုင်းလ် တည်းဖြတ် မိုဘိုင်းလ် app တည်းဖြတ် အန်းဒရွိုက် app တည်းဖြတ်
စာကြောင်း ၃၂ -
 
== ရှင်းလင်းချက် ==
[[ပရိုဂရမ်မင်းဘာသာရပ်]] Java နှင့် [[Java ပလက်ဖောင်း]]အား 1990ခုနှစ်အစပိုင်းတွင် [[Sun Microsystems]] တွင် [[James Gosling]] အမှူးပြုသော ပညာရှင်များက တီထွင်ရေးသားခဲ့ကြပါသည်။ လက်ရှိတွင် Java နည်းပညာ၏ အခြေခံပြုခြင်းလုပ်ငန်းများသည် [[Java Community Process]] (JCP) ဟုအမည်ရသော အဆင့်များဖြင့် ပြုပြင်ရေးသားနေကြ၏။
 
Java နှင့်ပတ်သက်သောနှင့် ပတ်သက်သော အမည်နှင့် အဓိပ္ပါယ်မှာ အသုံးပြုပုံ အပေါ်တွင်မှုတည်ပြီး အမျိုးမျိုး ကွဲပြားခြားနား၏။ [[Sun Microsystems]]သည်၊ Java နည်းပညာ(Java နည်းပညာ、Java technology)ဟု ခေါ်ဆိုအသုံးပြုပြီး၊ တဘက်တွင် Java ၏ အမျိုးမျိုးသော နည်းပညာများ၏ အမည်အဖြစ်လည်း Java ဟုခေါ်ဆိုအသုံးပြုလေ့ရှိ၏။ [[ပရိုဂရမ်မာ]] အများစုသည်၊ [[ပရိုဂရမ်မင်းဘာသာရပ်]] ဟူသော အဓိပ္ပါယ် အဖြစ် Java ကို အသုံးပြုလေ့ရှိ၏။ Java ၏ ပတ်ဝင်းကျင်သည်၊ Java ပလက်ဖောင်း (Java Runtime Environment; JRE) ဟု ခေါ်ဆိုလေ့ရှိ၏။ Java ၏ အခြေခံ ရေးသားနိုင်သော ပတ်ဝင်းကျင်ကို[[Java Development Kit]] (Java Development Kit; JDK) ဟု ခေါ်ဆို၏။
 
Java သည် [[Class(ကွန်ပျူတာ)|ကလပ်စ်]]ကို အခြေခံသော [[ဝတ္တစက္ခုဗေဒ(Object_Oriented)|Object Oriented]] ပရိုဂရမ်မင်းဘာသာရပ် တစ်ခု ဖြစ်၏။ Java ၏ [[ပရိုဂရမ်]]သည်၊ [[Class(ကွန်ပျူတာ)|ကလပ်စ်]]များဖြင့် ဖွဲ့စည်းထားပြီး၊ ပရိုဂရမ်ကို အလုပ်လုပ်စေသောအခါ၊ ထို [[Class(ကွန်ပျူတာ)|ကလပ်စ်]]များကို အခြေခံပြီး ပြုလုပ်ထားသော [[Object (Programming)|ရုပ်ဝတ္တု(Object)]] များက အပြန်အလှန်ဆက်သွယ်ခြင်း အားဖြင့် အလုပ်လုပ်စေပါသည်။ Java သည် [[အမွေဆက်ခံခြင်း(Inheritance)|အမွေဆက်ခံခြင်း]] သဘောတရားကို အသုံးပြုနိုင်ပြီး [[Class(ကွန်ပျူတာ)|ကလပ်စ်]] တစ်ခုမှ အခြားသော [[Class(ကွန်ပျူတာ)|ကလပ်စ်]] ၏ အချက်အလက်နှင့် လုပ်ဆောင်ချက်များကို အမွေဆက်ခံခြင်းဖြင့် ပြန်လည်အသုံးပြုနိုင်၏။ အမွေဆက်ခံရာတွင် တစ်ခုတည်းမှသာ အမွေဆက်ခံနိုင်မည် ဖြစ်၏။ သို့ရာတွင် [[Class(ကွန်ပျူတာ)|ကလပ်စ်]](Object)တစ်ခုမှ၊ တစ်ခုထက်မကသော[[အင်တာဖေစ်(Interface)]]များကို ပံ့ပိုးပေးနိုင်ပါသည်။ Java တွင်အသုံးပြုသော အချက်အလက်/Object ပုံစံ([[Data Type]])သည် ခိုင်မာသော[[Strong Type]] ပုံစံကို အသုံးပြုထား၏။ ဤကဲ့သို့ Java ၏[[ကွန်ပိုင်းလာ]] နှင့် အသုံးချ ပတ်ဝင်းကျင်သည်၊ အချက်အလက်ပုံစံများ၏ စစ်မှန်ချက်ကို စစ်ဆေးခြင်းအားဖြင့်၊ ပရိုဂရမ်က မှန်ကန်စွာအလုပ်လုပ်နိုင်ခြင်းနှင့် လုံခြုံစွာ အလုပ်လုပ်နိုင်ခြင်းတို့ အပေါ်တွင် အာမခံပေးနိုင်ပါသည်။
 
Java သည် [[ခြွင်းချက်(Exception)|ခြွင်းချက်လုပ်ဆောင်ချက်]]စနစ်ကို ပြင်ဆင်ထားပြီး [[ကွန်ပျူတာ ပရိုဂရမ်|ပရိုဂရမ်]] အလုပ်လုပ်နေစဉ် ဖြစ်ပွားတက်သော မျှော်လင့်မထားတတ်သော အမှားများကို၊ လုံခြုံစိတ်ချသောနည်းလမ်းဖြင့် လုပ်ဆောင်စေနိုင်ပြီး၊ ပရိုဂရမ်တစ်ခုကိုလည်း ရှင်းလင်းစွာ ရေးသားနိုင်ပါသည်။
 
Java မှာတော့ သန့်ရှင်းသော မန်မိုရီမော်ဒယ်ကို အသုံးပြုထားသောကြောင့်၊ [[ပရိုဂရမ်မာ]]က မန်မိုရီထိမ်းသိမ်းမှု့ အပေါ်တွင် သက်သာစေပေသည်။ Java Object များသည် မန်မိုရီအတွင်းရှိ[[Heap Memory]] နေရာကို အသုံးပြုကြ၏။ မန်မိုရီထိမ်းသိမ်းခြင်းသည်[[Java ဒြပ်မဲ့စက်(JVM)]]တွင် ပူးတွဲပါဝင်သော [[အမှိုက်သိမ်းစနစ်]]ဖြင့် ထိမ်းသိမ်းထားနိုင်၏။ထိန်းသိမ်းထားနိုင်၏။ [[C++]] မှာတော့ Heap Memory အပေါ်တွင် နေရာချထားသော Object များကို အသုံးမလိုသည့်အခါ ဖျက်စီးပစ်ရန် ပရိုဂရမ်မာက တာဝန်ယူ၍ လုပ်ဆောင်ရန် လိုအပ်ခဲ့ပေသည်။ ဤအချက်သည် C++ ပရိုဂရမ်မာအတွက် ဝန်ထုပ်တစ်ခုအနေနဲ့ ဖြစ်ခဲ့ပြီး၊ ရှုပ်ထွေးပြီး မှာယွင်းလွယ်တတ်ပေသည်။မှားယွင်းလွယ်တတ်ပေသည်။ Java မှာတော့ အမှိုက်သိမ်းစနစ် ကို ပိုင်ဆိုင်သောကြောင့် မန်မိုရီကို ထိမ်းသိမ်းရန်ဝန်ထုပ်ထိနိးသိမ်းရန်ဝန်ထုပ် မရှိပါသဖြင့် ပရိုဂရမ်မာအတွက် လွန်စွာမှအဆင်ပြေစေခဲ့ပါသည်။
 
[[Java၏ ရေးသားပုံ]]သည်၊ [[C]]နှင့်[[C++]] မှ အတော်များများကို အတုယူခဲ့၏။ တဖန် C/C++ တွင် အသုံးပြုသော အခြေခံနေရာများကို ထိမ်းသိမ်းအသုံးပြုနိုင်သောထိန်းသိမ်းအသုံးပြုနိုင်သော[[Pointer]]ကို အသုံးမပြုပါဟုဆိုသော်လည်း၊ လက်တွေ့မှာတော့ C/C++ ၏ Pointer Model နှင့်မတူသော၊ Pointer Model ကို Java တွင်လည်း အသုံးပြုထားပါသည်။ ဥပမာအားဖြင့် Class Instance နှင့် Array များတွင် Pointer ကို အသုံးပြုထားပါသည်။ "ClassName a = new ClassName();"နှင့် "ClassName b;"ပြန်လည် သတ်မှတ်ပြီး "b = a" အစားထိုးခြင်းအားဖြင့် b သည် a ၏ ပိုင်ဆိုင်မှု့များ ကို အသုံးချနိုင်မည် ဖြစ်သည်။ ဆိုလိုသည်မှာ a,b တွင် လိပ်စာများကို သတ်မှတ်ထားခြင်း ဖြစ်၏။ ဖော်ပြပါအတိုင်း Instance ၏ အမည်တွင် ဗားရှင်း1.2 နှင့် မတိုင်မှီက Object Handle(pointer ၏ pointer)၊ ဗားရှင်း1.3 ၏ နောက်ပိုင်းတွင် pointer ကို အသုံးပြုထားပါသည်။ ထို့ကြောင့် Java သည် ယနေ့တိုင် Pointer နှင့် ဖြတ်ချင်သော်လည်း မပြတ်နိုင်သော အနေအထား တစ်ခုဖြစ်နေရပါသည်။<ref>[http://java.sun.com/docs/overviews/java/java-overview-1.html The Java Language An Overview]</ref><!--「The single biggest difference between Java and C/C++ is that Java has a pointer model that eliminates the possibility of overwriting memory and corrupting data. Instead of pointer arithmetic, Java has true arrays. This allows subscript checking to be performed. In addition, it is not possible to turn an arbitrary integer into a pointer by casting.」-->
 
Java သည်[[ပလက်ဖောင်း (ကွန်ပျူတာ)|ပလက်ဖောင်း]]အပေါ်တွင် မှီခိုခြင်း မရှိစေရ ဟူသည်ကို ဦးတည်ချက်ထားပြီး၊ ဗားရှင်း တစ်ခုနှင့်တစ်ခု ကြားတွင်လည်း အပြန်အလှန်အသုံးချနိုင်မှု့အပေါ် သတိပြု၍ တီထွင်ဖန်တီးမှု့များ ပြုလုပ်လျှက်ရှိ၏။ Java နည်းပညာကို အသုံးပြုခြင်းအားဖြင့်၊ ပလက်ဖေါင်းအပေါ်တွင် မှီခိုခြင်းမရှိသော [[အပလီကေးရှင်း ဆော့ဖ်ဝဲ]] ကို ရေးသား၊ အသုံးပြုနိုင်မည် ဖြစ်သည်။ ယနေ့[[ပရိုဂရမ်မင်းဘာသာရပ်]]အတော်များများသိ ပလက်ဖေါင်း ([[CPU]]) အပေါ်တွင် မှီခိုခြင်းရှိသော [[သဘာဝကုဒ်]]များ အဖြစ်[[ကွန်ပိုင်း]]လုပ်ခြင်းကို ပုံစံဖြင့် ဒီဇိုင်းရေးသားထားကြ၏။ သို့ရာတွင် Java သည် အထက်ပါ ဘာသာရပ်များနှင့် မတူပဲ [[ကြားခံဘာသာ]]([[Byte Code]])အဖြစ် ကွန်ပိုင်းလုပ်ပြီး၊[[Java VM]]တွင် အလုပ်လုပ်နိုင်စေရန် ဒီဇိုင်းရေးသားထား၏။ အတော်များများသည် [[Just In Time ကွန်ပိုင်းပုံစံ]] ကို အသုံးပြုထားကြပါသည်။
စာကြောင်း ၅၆ -
Java သည်[[လုံခြုံရေး]] ကို အဓိကထားပြီး ဒီဇိုင်းရေးထားသော[[Sand Box]] မော်ဒယ်တွင် အခြေခံသော လုံခြုံရေးစနစ်ကို ပြင်ဆင်ထား၏။ လုံခြုံရေးစနစ်ကို မှန်ကန်စွာအသုံးပြုထားသော Java အသုံးချ ပတ်ဝင်းကျင်ကို အသုံးပြုခြင်းအားဖြင့်၊ အဝေးတနေရာတွင် ရှိသော Java အသုံးချကုဒ်များကို လုံခြုံစွာအသုံးပြုနိုင်မည် ဖြစ်သည်။([[Java Applet]])
 
တဖန်[[Namespace]] စနစ်ကို အသုံးပြုထားသော ဘာသာရပ်တစ်ခုဖြစ်ပြီး၊ Library နှင့် အပလီကေးရှင်း တွင်ပါဝင်သော Java များ(ကလပ်စ် နှင့် အင်တာဖေ့စ်)သည်၊ [[Package (Java)]] ဟု ခေါ်သော အဆင့်ဆင့်ခွဲခြား ထိမ်းသိမ်းမှု့စနစ်ဖြစ်ထိန်းသိမ်းမှု့စနစ်ဖြစ် ခွဲခြားအသုံးပြုနိုင်မည်ဖြစ်သည်။
 
ယနေ့ခေတ်တွင် Java နှင့် ပတ်သက်ပြီး ဝေဖန်ချက်များလည်း မနည်းပေ။ အချို့သော ဝေဖန် ရှုတ်ချမှု့များနှင့်ပတ်သက်ပြီး၊ Sun နှင့် JCP တွင်ပါဝင်ခဲ့သော အဖွဲ့ဝင်များ၏ အားထုတ်မှု့များကြောင့်၊ Java ၏ ပြုပြင်ပြောင်းလည်းမှု့များကို ပြုလုပ်လျှက်ရှိပါသည်။ တပြိုင်နက်တည်းမှာပင် ဆော့ဖ်ဝဲ ရေးသားသူအတော်များများက Java နှင့် ပတ်သက်ပြီး ကျယ်ကျယ်ပြန့်ပြန့် အသုံးပြုနိုင်သော ထူးချွန်သော ပရိုဂရမ်မင်းဘာသာရပ်တစ်ခု အဖြစ် အသိအမှတ်ပြုထားကြပါသည်။