Java SE 18 ထွက်ရှိသည်။

ခြောက်လကြာ တီထွင်ပြီးနောက်၊ Oracle သည် Java SE 18 platform (Java Platform, Standard Edition 18) ကို ထုတ်ပြန်ခဲ့ပြီး၊ ၎င်းသည် open source OpenJDK ပရောဂျက်ကို ၎င်း၏ reference implementation အဖြစ် အသုံးပြုသည်။ အချို့သော အသုံးမဝင်တော့သော feature များကို ဖယ်ရှားခြင်းမှလွဲ၍ Java SE 18 သည် Java platform ၏ ယခင်ထုတ်ဝေမှုများနှင့် backward compatibility ကို ထိန်းသိမ်းထားသည် - ယခင်ကရေးသားခဲ့သော Java ပရောဂျက်အများစုသည် ဗားရှင်းအသစ်အောက်တွင် လုပ်ဆောင်သောအခါ မပြောင်းလဲဘဲ လုပ်ဆောင်မည်ဖြစ်သည်။ Java SE 18 (JDK၊ JRE နှင့် Server JRE) ၏ install လုပ်ရန် အသင့်ဖြစ်သော build များကို ပြင်ဆင်ထားသည်။ Linux (x86_64၊ AArch64)၊ Windows (x86_64) နှင့် macOS (x86_64၊ AArch64)။ OpenJDK ပရောဂျက်မှ တီထွင်ထားသော Java 18 reference implementation သည် GNU ClassPath Exception ပါရှိသော GPLv2 လိုင်စင်အောက်တွင် အပြည့်အဝ open source ဖြစ်ပြီး စီးပွားဖြစ်ထုတ်ကုန်များနှင့် dynamic linking လုပ်ခွင့်ပြုသည်။

Java SE 18 ကို ပုံမှန်ပံ့ပိုးမှုကာလဖြင့် ထုတ်ဝေမှုအဖြစ် အမျိုးအစားခွဲထားပြီး နောက်ထွက်ရှိချိန်အထိ ထုတ်ပြန်မည့် အပ်ဒိတ်များ။ Java SE 17 အား ရေရှည်ပံ့ပိုးမှု (LTS) ဌာနခွဲတစ်ခုအနေဖြင့် အသုံးပြုသင့်သည်၊ 2029 ခုနှစ်အထိ ထွက်ရှိမည့် အပ်ဒိတ်များ။ Java 10 ထုတ်ဝေမှုမှစတင်ပြီး ပရောဂျက်သည် အသစ်ထွက်ရှိမှုများအတွက် ပိုမိုတိုတောင်းသော စက်ဝန်းကို ဆိုလိုသည့် ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အသစ်သို့ ပြောင်းသွားသည်ကို သတိရပါ။ လုပ်ဆောင်ချက်အသစ်များကို အဆင်သင့်လုပ်ထားသော ပြောင်းလဲမှုများနှင့် အသစ်ထုတ်ဝေမှုများကို တည်ငြိမ်စေရန် ခြောက်လတစ်ကြိမ် အကိုင်းအခက်များ ခွဲထုတ်ခြင်း အပါအဝင် အဆက်မပြတ် မွမ်းမံထားသော မာစတာဌာနခွဲတစ်ခုတွင် လုပ်ဆောင်ချက်အသစ်ကို ယခု တီထွင်ထားပါသည်။

Java 18 တွင် အင်္ဂါရပ်အသစ်များ ပါဝင်သည်-

  • UTF-8 ကုဒ်ကို မူရင်းအတိုင်း ဖွင့်ထားသည်။ စနစ်ဆက်တင်များနှင့် ဒေသသတ်မှတ်မှုမသက်ဆိုင်ဘဲ ပလပ်ဖောင်းအားလုံးတွင် စာလုံးအသွင်ပြောင်းခြင်းအတွက် စာသားဒေတာကို လုပ်ဆောင်သည့် Java API များသည် ယခုအခါ UTF-8 ကို မူလအတိုင်း အသုံးပြုမည်ဖြစ်သည်။ စနစ်ဒေသကို ထည့်သွင်းစဉ်းစားပြီး ကုဒ်ကိုရွေးချယ်ထားသည့် အပြုအမူဟောင်းသို့ ပြန်သွားရန်၊ သင်သည် "-Dfile.encoding=COMPAT" ဘောင်ကို အသုံးပြုနိုင်သည်။
  • com.sun.net.httpserver ပက်ကေ့ဂျ်တွင် jwebserver utility နှင့် static content များကိုဝန်ဆောင်မှုပေးရန်အတွက် ရိုးရှင်းသော http server အကောင်အထည်ဖော်မှုပါရှိသော library API တစ်ခုပါဝင်သည် (CGI နှင့် servlet-like handlers များကို ပံ့ပိုးမထားပါ)။ တပ်ဆင်ထားသော http ဆာဗာသည် အလုပ်များများအတွက် ပိုမိုကောင်းမွန်အောင် မွမ်းမံထားခြင်း မဟုတ်ဘဲ ဝင်ရောက်မှု ထိန်းချုပ်ခြင်းနှင့် အထောက်အထားစိစစ်ခြင်းတို့ကို မပံ့ပိုးနိုင်သောကြောင့် ၎င်းကို ပုံတူရိုက်ခြင်း၊ အမှားပြင်ဆင်ခြင်းနှင့် စမ်းသပ်ခြင်းပရောဂျက်များအတွက် ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်း အဓိကအသုံးပြုရန် ရည်ရွယ်ပါသည်။
  • ယခုအခါ JavaDoc သည် အလုပ်နမူနာများနှင့် ကုဒ်အတိုအထွာများကို API စာရွက်စာတမ်းများတွင် ထည့်သွင်းရန်အတွက် @snippet တဂ်ကို အတည်ပြုခြင်း၊ အစီအစဥ်အသားပေးဖော်ပြခြင်းနှင့် IDE ပေါင်းစည်းခြင်းအတွက် အသုံးပြုနိုင်ပါသည်။
  • နည်းလမ်းများ၊ အကွက်များနှင့် အတန်းတည်ဆောက်သူများအပြင် အတန်း၏အတွင်းပိုင်းဖွဲ့စည်းပုံသို့ ဝင်ရောက်နိုင်စေရန် ဒီဇိုင်းရေးဆွဲထားသည့် java.lang.reflect (Core Reflection) API ကို ဒီဇိုင်းထုတ်ထားပါသည်။ java.lang.reflect API ကိုယ်တိုင်က မပြောင်းလဲသေးသော်လည်း ယခုအခါ bytecode ဂျင်နရေတာများကို အသုံးပြုမည့်အစား java.lang.invoke module မှ ပံ့ပိုးပေးသည့် method handles များကို အသုံးပြု၍ အကောင်အထည်ဖော်နေပြီဖြစ်သည်။ ပြောင်းလဲမှုသည် java.lang.reflect နှင့် java.lang.invoke ၏ အကောင်အထည်ဖော်မှုများကို ပေါင်းစည်းကာ ၎င်းတို့၏ ထိန်းသိမ်းမှုကို ရိုးရှင်းစေရန် လုပ်ဆောင်နိုင်စေခဲ့သည်။
  • x86_64 နှင့် AArch64 ပရိုဆက်ဆာများ၏ vector ညွှန်ကြားချက်များကို အသုံးပြု၍ လုပ်ဆောင်သည့် Vector API ၏တတိယပဏာမအကောင်အထည်ဖော်မှုကို အဆိုပြုထားပြီး တန်ဖိုးများစွာကို တစ်ပြိုင်နက်တည်း (SIMD) သို့ လုပ်ဆောင်ချက်များစွာကို တစ်ပြိုင်နက်တည်း အသုံးချခွင့်ပြုသည်။ HotSpot JIT compiler မှ ပံ့ပိုးပေးသော scalar လုပ်ဆောင်ချက်များ၏ အလိုအလျောက် vectorization နှင့် မတူဘဲ API အသစ်သည် အပြိုင်ဒေတာ လုပ်ဆောင်ခြင်းအတွက် vectorization ကို ပြတ်သားစွာ ထိန်းချုပ်နိုင်စေပါသည်။
  • host name များကို ဖြေရှင်းရန်အတွက် SPI (service-provider interface) ကို ထည့်သွင်းထားသည်။ IP လိပ်စာများ၎င်းသည် java.net.InetAddress အား operating system မှ ပေးဆောင်သော handler များနှင့် မချိတ်ဆက်ထားသော အခြား resolver များကို အသုံးပြုရန် ခွင့်ပြုသည်။
  • Foreign Function & Memory API ၏ ဒုတိယပဏာမ အကောင်အထည်ဖော်မှုကို အဆိုပြုထားပြီး၊ အပလီကေးရှင်းများသည် Java runtime အပြင်ဘက်ရှိ ကုဒ်နှင့် ဒေတာများနှင့် အပြန်အလှန်တုံ့ပြန်နိုင်စေရန် ခွင့်ပြုထားသည်။ API အသစ်သည် JVM ပြင်ပတွင် လုပ်ဆောင်နေသော လုပ်ဆောင်ချက်များကို ထိရောက်စွာ ခေါ်ဆိုနိုင်စေရန်နှင့် JVM မှ စီမံခန့်ခွဲခြင်းမရှိသော မှတ်ဉာဏ်သို့ ဝင်ရောက်ခွင့်ကို ခွင့်ပြုပေးပါသည်။ ဥပမာအားဖြင့်၊ သင်သည် ပြင်ပမျှဝေထားသည့် ဒစ်ဂျစ်တိုက်များမှ လုပ်ဆောင်ချက်များကို ခေါ်ဆိုနိုင်ပြီး JNI ကို အသုံးမပြုဘဲ လုပ်ငန်းစဉ်ဒေတာကို ရယူနိုင်သည်။
  • ခလုတ်အသုံးအနှုန်းများတွင် တူညီသောပုံစံကိုက်ညီမှု၏ ဒုတိယစမ်းသပ်အကောင်အထည်ဖော်မှုကို ထည့်သွင်းထားပြီး၊ ဖြစ်ရပ်အညွှန်းများသည် အတိအကျတန်ဖိုးများထက် တိကျသောတန်ဖိုးများထက် တစ်ပြိုင်နက်တန်ဖိုးများအတွဲလိုက်များကို ဖုံးအုပ်နိုင်သော အိတ်စ်အညွှန်းများကို အသုံးပြုခွင့်ပေးထားသည်။ အရာဝတ္ထု o = 123L; String formatted = switch (o) { case Integer i --> String.format(«int %d», i); case Long l -> String.format(«long %d»,l); case Double d -> String.format(«double %f»၊ d); case String s -> String.format(«String %s», s); မူရင်း -> o.toString(); };
  • အပြီးသတ်လုပ်ဆောင်မှု ယန္တရားအပြင် Object.finalize(), Enum.finalize(), Runtime.runFinalization(), နှင့် System.runFinalization() ကဲ့သို့သော ဆက်စပ်နည်းလမ်းများကို ရပ်ဆိုင်းထားပြီး အနာဂတ်ထုတ်ဝေမှုတွင် ပိတ်သွားမည်ဖြစ်သည်။
  • ZGC (Z အမှိုက်စုဆောင်းသူ)၊ SerialGC နှင့် ParallelGC အမှိုက်စုဆောင်းသူများသည် အတန်းပုံပွားခြင်းကို ပံ့ပိုးပေးပါသည်။

source: opennet.ru

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster