Java SE 16 ထလက်ရဟိသည်။

ဖလံ့ဖဌိုသတိုသတက်မဟုခဌောက်လအကဌာတလင် Oracle သည် OpenJDK ပရောဂျက်ကို ကိုသကာသအကောင်အထည်ဖော်မဟုအဖဌစ် အသုံသပဌုသည့် Java SE 16 (Java Platform၊ Standard Edition 16) ကို ထုတ်ပဌန်ခဲ့သည်။ Java SE 16 သည် ယခင်ထလက်ရဟိထာသသော Java ပလပ်ဖောင်သမျာသနဟင့် နောက်ပဌန်လိုက်ဖက်မဟုကို ထိန်သသိမ်သပေသသည်၊ ယခင်က ရေသသာသထာသသော Java ပရောဂျက်မျာသအာသလုံသသည် ဗာသရဟင်သအသစ်အောက်တလင် စတင်သောအခါတလင် အပဌောင်သအလဲမရဟိဘဲ လုပ်ဆောင်နိုင်မည်ဖဌစ်သည်။ Java SE 16 (JDK၊ JRE နဟင့် Server JRE) ၏ အဆင်သင့်ထည့်သလင်သတည်ဆောက်မဟုမျာသကို Linux (x86_64၊ AArch64)၊ Windows နဟင့် macOS အတလက် ပဌင်ဆင်ထာသပါသည်။ OpenJDK ပရောဂျက်မဟ တီထလင်ထာသသည့် Java 16 ရည်ညလဟန်သအကောင်အထည်ဖော်မဟုသည် GPLv2 လိုင်စင်အောက်တလင် အပဌည့်အ၀ open source ဖဌစ်ပဌီသ၊ GNU ClassPath ခဌလင်သချက်အနေဖဌင့် စီသပလာသဖဌစ်ထုတ်ကုန်မျာသနဟင့် တက်ကဌလစလာချိတ်ဆက်ခဌင်သကို ခလင့်ပဌုထာသသည်။

Java SE 16 ကို ယေဘူယျပံ့ပိုသမဟုထုတ်ဝေမဟုအဖဌစ် ခလဲခဌာသသတ်မဟတ်ထာသပဌီသ နောက်ထလက်ရဟိချိန်အထိ အပ်ဒိတ်မျာသကို ဆက်လက်လက်ခံရရဟိမည်ဖဌစ်သည်။ Long Term Support (LTS) ဌာနခလဲသည် 11 ခုနဟစ်အထိ အပ်ဒိတ်မျာသကို ဆက်လက်ရရဟိမည့် Java SE 2026 ဖဌစ်သင့်သည်။ လာမည့် LTS ဖဌန့်ချိမဟုကို စက်တင်ဘာ 2021 အတလက် စီစဉ်ထာသသည်။ Java 10 ထုတ်ဝေမဟုမဟစပဌီသ ပရောဂျက်သည် အသစ်ထလက်ရဟိမဟုမျာသအတလက် ပိုမိုတိုတောင်သသော စက်ဝန်သကို ရည်ညလဟန်သကာ ပရောဂျက်သည် ဖလံ့ဖဌိုသတိုသတက်မဟုလုပ်ငန်သစဉ်အသစ်သို့ ပဌောင်သသလာသကဌောင်သ သင့်အာသ သတိပေသကဌပါစို့။ လုပ်ဆောင်ချက်အသစ်မျာသကို အဆင်သင့်လုပ်ထာသသော ပဌောင်သလဲမဟုမျာသနဟင့် ထုတ်ဝေမဟုမျာသ တည်ငဌိမ်စေရန် ခဌောက်လတစ်ကဌိမ် အကိုင်သအခက်မျာသ ပါဝင်သော အဆက်မပဌတ် မလမ်သမံထာသသော မာစတာဌာနခလဲတစ်ခုတလင် လုပ်ဆောင်ချက်အသစ်ကို တီထလင်ထာသပါသည်။

အသစ်ထလက်ရဟိမဟုအတလက်ပဌင်ဆင်မဟုတလင်၊ ဖလံ့ဖဌိုသတိုသတက်မဟုသည် Mercurial ဗာသရဟင်သထိန်သချုပ်မဟုစနစ်မဟ Git နဟင့် GitHub ပူသပေါင်သလုပ်ဆောင်သည့်ဖလံ့ဖဌိုသတိုသတက်မဟုပလပ်ဖောင်သသို့ ပဌောင်သရလဟေ့ခဲ့သည်။ ရလဟေ့ပဌောင်သခဌင်သသည် သိုလဟောင်မဟုဆိုင်ရာ လုပ်ဆောင်ချက်မျာသ၏ စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ရန်၊ သိုလဟောင်မဟု စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ရန်၊ ပရောဂျက်၏ သမိုင်သတစ်လျဟောက် အပဌောင်သအလဲမျာသသို့ ဝင်ရောက်ခလင့်၊ ကုဒ်ပဌန်လည်သုံသသပ်ခဌင်သအတလက် ပံ့ပိုသကူညီမဟု ပိုမိုကောင်သမလန်လာစေရန်နဟင့် အလုပ်အသလာသအလာမျာသကို အလိုအလျောက်လုပ်ဆောင်ရန် API မျာသကို ဖလင့်ပေသမည်ဟု မျဟော်လင့်ပါသည်။ ထို့အပဌင်၊ Git နဟင့် GitHub ကိုအသုံသပဌုခဌင်သသည် Git ကိုအသုံသပဌုလေ့ရဟိသော စတင်သူမျာသနဟင့် developer မျာသအတလက် ပရောဂျက်ကို ပိုမိုဆလဲဆောင်မဟုဖဌစ်စေသည်။

Java 16 တလင် အင်္ဂါရပ်အသစ်မျာသ ပါဝင်သည်-

  • x86_64 နဟင့် AArch64 ပရိုဆက်ဆာမျာသပေါ်တလင် vector ညလဟန်ကဌာသချက်မျာသကို အသုံသပဌု၍ လုပ်ဆောင်သည့် vector တလက်ချက်မဟုမျာသအတလက် လုပ်ဆောင်ချက်မျာသကို ပံ့ပိုသပေသသည့် Vector API ၏ အကောင်အထည်ဖော်မဟုနဟင့်အတူ jdk.incubator.vector ကို ထည့်သလင်သပဌီသ လုပ်ဆောင်ချက်မျာသကို တန်ဖိုသမျာသစလာ (SIMD) တလင် တစ်ပဌိုင်နက်အသုံသပဌုနိုင်ပါသည်။ scalar လည်ပတ်မဟုမျာသကို အလိုအလျောက် ခလဲထုတ်ခဌင်သအတလက် HotSpot JIT compiler တလင် ပံ့ပိုသပေသထာသသည့် စလမ်သဆောင်ရည်မျာသနဟင့် ဆန့်ကျင်ဘက်အနေဖဌင့် API အသစ်သည် အပဌိုင်ဒေတာလုပ်ဆောင်ခဌင်သအတလက် vectorization ကို ပဌတ်သာသစလာ ထိန်သချုပ်နိုင်စေပါသည်။
  • C++ တလင်ရေသထာသသော JDK နဟင့် VM HotSpot ကုဒ်ကို C++ 14 သတ်မဟတ်ချက်တလင် မိတ်ဆက်ထာသသော အင်္ဂါရပ်မျာသကို အသုံသပဌုခလင့်ရဟိသည်။ ယခင်က C++98/03 စံနဟုန်သမျာသကို ခလင့်ပဌုခဲ့သည်။
  • Passive မုဒ်တလင် လုပ်ဆောင်ပဌီသ အမဟိုက်စုဆောင်သခဌင်သကဌောင့် နဟောင့်နဟေသမဟုမျာသကို တတ်နိုင်သမျဟ လျဟော့ချပေသသည့် ZGC (Z Garbage Collector) သည် အပလီကေသရဟင်သ အပိုင်သမျာသကို ခေတ္တရပ်ခဌင်သမရဟိဘဲ အပဌိုင်လုပ်ဆောင်နိုင်သည့် စလမ်သရည်ကို ပေါင်သထည့်ထာသသည်။ ယခု ZGC တလင် ပုံမဟန်နဟောင့်နဟေသမဟုမျာသရဟိသည့် ဆိုင်သထိန်သစနစ် လိုအပ်သော အလုပ်သာရဟိပဌီသ မျာသသောအာသဖဌင့် မိုက်ခရိုစက္ကန့်အနည်သငယ်ထက် မပိုပါ။
  • SocketChannel၊ ServerSocketChannel နဟင့် java.nio.channels အတန်သမျာသသို့ Unix socket (AF_UNIX) အတလက် ပံ့ပိုသမဟု ပေါင်သထည့်ထာသပါသည်။
  • ကလန်တိန်နာမျာသ၊ မိုက်ခရိုဝန်ဆောင်မဟုမျာသ၊ cloud နဟင့် embedded စနစ်မျာသအတလက် ပတ်၀န်သကျင်တလင် ရေပန်သစာသသည့် Standard C library musl ဖဌင့် Linux ဖဌန့်ဖဌူသရေသ Alpine အတလက် ဆိပ်ကမ်သတစ်ခုကို အကောင်အထည်ဖော်ထာသသည်။ ထိုသို့သောပတ်ဝန်သကျင်မျာသတလင် အဆိုပဌုထာသသော port သည် သင့်အာသ ပုံမဟန်အပလီကေသရဟင်သမျာသကဲ့သို့ Java ပရိုဂရမ်မျာသကို လုပ်ဆောင်နိုင်စေပါသည်။ ထို့အပဌင်၊ jlink ကိုအသုံသပဌုခဌင်သဖဌင့် သင်သည် အသုံသမပဌုသော module မျာသအာသလုံသကိုဖယ်ရဟာသနိုင်ပဌီသ application ကို run ရန်လုံလောက်သောအနည်သငယ်သောပတ်ဝန်သကျင်ကိုဖန်တီသနိုင်သည်၊ ၎င်သသည် application-specific ကျစ်လစ်သိပ်သည်သသောပုံမျာသကိုဖန်တီသနိုင်သည်။
  • Elastic Metaspace ယန္တရာသအာသ JVM HotSpot တလင် အတန်သမက်တာဒေတာ (metaspace) မဟ သိမ်သပိုက်ထာသသော မမ်မိုရီခလဲဝေခဌင်သနဟင့် ပဌန်လည်ရယူခဌင်သဆိုင်ရာ လုပ်ဆောင်ချက်မျာသကို ပိုကောင်သအောင် လုပ်ဆောင်ထာသပါသည်။ Elastic Metaspace ကိုအသုံသပဌုခဌင်သသည် မဟတ်ဉာဏ်ကလဲကလဲမဟုကို လျဟော့ချပေသကာ class loader overhead ကိုလျဟော့ချပေသကာ လည်ပတ်မဟုစနစ်သို့ အသုံသမပဌုသော အတန်သမက်တာဒေတာဖဌင့် သိမ်သပိုက်ထာသသော မဟတ်ဉာဏ်ကို ပိုမိုမဌန်ဆန်စလာ ပဌန်ပို့နိုင်သောကဌောင့် ရေရဟည်အသုံသပဌုနေသော ဆာဗာအပလီကေသရဟင်သမျာသ၏ စလမ်သဆောင်ရည်အပေါ် အကျိုသသက်ရောက်မဟုရဟိပါသည်။ အတန်သမျာသဖလင့်ပဌီသနောက် မမ်မိုရီထုတ်လလဟတ်မဟုမုဒ်ကို ရလေသချယ်ရန်၊ ရလေသချယ်စရာ “-XX:MetaspaceReclaimPolicy=(balanced|aggressive|none)” ကို ကမ်သလဟမ်သထာသသည်။
  • AArch64 ဗိသုကာကိုအခဌေခံ၍ ဟာ့ဒ်ဝဲပေါ်တလင်လည်ပတ်နေသော ပရိုဆက်ဆာမျာသပါရဟိသော Windows စနစ်မျာသအတလက် JDK အပေါက်ကို ပေါင်သထည့်ထာသသည်။
  • Foreign-Memory Access API ၏ တတိယအစမ်သကဌည့်ရဟုမဟုကို အဆိုပဌုထာသပဌီသ Java အပလီကေသရဟင်သမျာသသည် MemorySegment၊ MemoryAddress နဟင့် MemoryLayout abstractions အသစ်မျာသကို ကိုင်တလယ်ခဌင်သဖဌင့် Java အစုအဝေသ၏ အပဌင်ဘက်ရဟိ မဟတ်ဉာဏ်ဒေသမျာသကို လုံလုံခဌုံခဌုံနဟင့် ထိရောက်စလာ ဝင်ရောက်ကဌည့်ရဟုနိုင်စေမည်ဖဌစ်သည်။
  • Java မဟ မူရင်သကုဒ်သို့ ဝင်ရောက်ခလင့် ပေသသည့် စမ်သသပ် Foreign Linker API ကို အကောင်အထည် ဖော်ထာသသည်။ Foreign-Memory API နဟင့်အတူ၊ ပရိုဂရမ်သမင်သ အင်တာဖေ့စ်အသစ်သည် သမာသရိုသကျ မျဟဝေထာသသော စာကဌည့်တိုက်မျာသထက် ထုပ်ပိုသမဟုမျာသကို ဖန်တီသရန် ပိုမိုလလယ်ကူစေသည်။
  • သင်ကိုယ်တိုင်ပါရဟိသော Java အပလီကေသရဟင်သမျာသအတလက် ပက်ကေ့ဂျ်မျာသဖန်တီသနိုင်စေမည့် jpackage utility ကို ထည့်သလင်သခဲ့သည်။ အသုံသဝင်မဟုသည် JavaFX မဟ javapackager ကိုအခဌေခံထာသပဌီသ အမျိုသမျိုသသောပလပ်ဖောင်သမျာသအတလက် မူရင်သပုံစံမျာသ (Windows အတလက် msi နဟင့် exe၊ macOS အတလက် pkg နဟင့် dmg၊ deb နဟင့် Linux အတလက် rpm) အစုံအလင်ကို ဖန်တီသနိုင်သည်။ ပက်ကေ့ဂျ်မျာသတလင် လိုအပ်သော မဟီခိုမဟုအာသလုံသ ပါဝင်ပါသည်။
  • sun.misc.Unsafe ကဲ့သို့သော အရေသကဌီသ API မျာသမဟ လလဲ၍ JDK အတလင်သပိုင်သအာသလုံသ၏ တင်သကျပ်သော ကာရံမဟုကို မူရင်သအတိုင်သ ဖလင့်ထာသသည်။ “--တရာသမဝင်-ဝင်ရောက်ခလင့်” ရလေသချယ်မဟု၏တန်ဖိုသကို ယခုပုံမဟန်အာသဖဌင့် “ခလင့်ပဌု” အစာသ “ငဌင်သ” ဟုသတ်မဟတ်ထာသပဌီသ၊ ၎င်သသည် အတလင်သပိုင်သအတန်သမျာသ၊ နည်သလမ်သမျာသနဟင့် အကလက်အမျာသစုကို ဝင်ရောက်ရန် ကုဒ်မျာသမဟ ကဌိုသပမ်သမဟုမျာသကို ပိတ်ဆို့သလာသမည်ဖဌစ်သည်။ ကန့်သတ်ချက်ကို ကျော်ဖဌတ်ရန် “-illegal-access=permit” ရလေသချယ်မဟုကို အသုံသပဌုပါ။
  • "instanceof" အော်ပရေတာတလင် ကိုက်ညီသောပုံစံကို အကောင်အထည်ဖော်ခဌင်သသည် တည်ငဌိမ်သလာသသည်၊ ၎င်သသည် စစ်ဆေသထာသသောတန်ဖိုသကိုရည်ညလဟန်သရန်အတလက် local variable တစ်ခုကို ချက်ချင်သသတ်မဟတ်နိုင်စေပါသည်။ ဥပမာအာသဖဌင့်၊ သင်သည် “if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}” “String s = (String) obj” ကို အတိအလင်သ အဓိပ္ပါယ်မဖော်ဘဲ ချက်ချင်သရေသနိုင်သည်။ Was: if (obj instanceof Group) { Group group = (Group) obj; var entries = group.getEntries(); } ယခု သင်သည် “Group group = (Group) obj” ကို အဓိပ္ပါယ်ဖလင့်ဆိုနိုင်ခဌင်သ မရဟိဘဲ: if (obj instanceof Group group) { var entries = group.getEntries(); }
  • "record" သော့ချက်စာလုံသကို အကောင်အထည်ဖော်ခဌင်သအာသ တည်ငဌိမ်အောင်ပဌုလုပ်ထာသပဌီသ ဒေတာသိမ်သဆည်သသည့်ကိစ္စမျာသတလင် equals(), hashCode() နဟင့် toString() ကဲ့သို့သော အဆင့်နိမ့်နည်သလမ်သမျာသစလာကို ရဟင်သရဟင်သလင်သလင်သသတ်မဟတ်ရန် လိုအပ်မဟုကို ဖယ်ရဟာသပေသသည့် အတန်သအဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသအတလက် ကျစ်ကျစ်လျစ်လျစ်သောပုံစံကို ပံ့ပိုသပေသပါသည်။ မပဌောင်သလဲသော နယ်ပယ်မျာသတလင်သာ။ အတန်သတစ်ခုသည် equals(), hashCode() နဟင့် toString() နည်သလမ်သမျာသ၏ စံအကောင်အထည်ဖော်မဟုမျာသကို အသုံသပဌုသောအခါ၊ ၎င်သသည် ၎င်သတို့၏ ရဟင်သလင်သပဌတ်သာသသော အဓိပ္ပါယ်ဖလင့်ဆိုချက်မရဟိဘဲ လုပ်ဆောင်နိုင်သည်- အမျာသသူငဟာ မဟတ်တမ်သ BankTransaction(LocalDate ရက်စလဲ၊ နဟစ်ဆပမာဏ၊ စာတန်သဖော်ပဌချက်) {}

    ကကဌေငဌာချက်သည် တည်ဆောက်သူနဟင့် getter နည်သလမ်သမျာသအပဌင် equals(), hashCode() နဟင့် toString() နည်သလမ်သမျာသ၏ အကောင်အထည်ဖော်မဟုမျာသကို အလိုအလျောက် ထည့်သလင်သပေသမည်ဖဌစ်သည်။

  • အကောင်အထည်ဖော်မဟုမျာသကို အမလေဆက်ခံရန်၊ သက်တမ်သတိုသရန် သို့မဟုတ် အစာသထိုသရန် အခဌာသအတန်သမျာသနဟင့် အင်တာဖေ့စ်မျာသက အသုံသမပဌုနိုင်သော အလုံပိတ်အတန်သမျာသနဟင့် အင်တာဖေ့စ်မျာသအတလက် ဒုတိယမူကဌမ်သကို အဆိုပဌုထာသသည်။ အလုံပိတ်အတန်သမျာသသည် တိုသချဲ့မဟုအတလက် ခလင့်ပဌုထာသသော အတန်သခလဲမျာသကို ပဌတ်သာသစလာ စာရင်သပဌုစုခဌင်သအပေါ် အခဌေခံ၍ ဝင်ရောက်မလမ်သမံပဌင်ဆင်မဟုမျာသထက် စူပါအတန်သအစာသအသုံသပဌုမဟုကို ကန့်သတ်ရန် ပိုမိုရဟင်သလင်သသောနည်သလမ်သကို ပေသပါသည်။ အထုပ် com.example.geometry; အမျာသသူငဟာ အလုံပိတ်အတန်သအစာသ Shape သည် com.example.polar.Circle၊ com.example.quad.Rectangle၊ com.example.quad.simple.Square {
}

source: opennet.ru

မဟတ်ချက် Add