Java SE 18 хувилбар

Зургаан сарын турш хөгжүүлсний дараа Oracle нь OpenJDK нээлттэй эхийн төслийг лавлагаа болгон ашигладаг Java SE 18 (Java Platform, Standard Edition 18) платформыг гаргасан. Зарим нэг хуучирсан функцуудыг хассанаас бусад тохиолдолд Java SE 18 нь Java платформын өмнөх хувилбаруудтай хоцрогдсон нийцтэй байдлыг хадгалж байдаг - өмнө нь бичигдсэн ихэнх Java төслүүд шинэ хувилбар дээр ажиллах үед ямар ч өөрчлөлтгүйгээр ажиллах болно. Java SE 18 (JDK, JRE болон Server JRE)-ийн суулгахад бэлэн хувилбаруудыг Linux (x86_64, AArch64), Windows (x86_64) болон macOS (x86_64, AArch64)-д зориулан бэлтгэсэн. OpenJDK төслөөс боловсруулсан Java 18 лавлагааны хэрэгжилт нь GPLv2 лицензийн дагуу бүрэн нээлттэй эх сурвалж бөгөөд GNU ClassPath-ийн онцгой тохиолдлуудад арилжааны бүтээгдэхүүнтэй динамик холболт хийх боломжийг олгодог.

Java SE 18 нь байнгын дэмжлэгийн хувилбар гэж ангилагддаг бөгөөд дараагийн хувилбараас өмнө шинэчлэлтүүд гарах болно. Урт хугацааны дэмжлэг (LTS) салбар нь 17 он хүртэл шинэчлэлтүүдийг хүлээн авах Java SE 2029 байх ёстой. Java 10-ийг гаргаснаас хойш төсөл нь шинэ хөгжүүлэлтийн процесс руу шилжсэн бөгөөд энэ нь шинэ хувилбаруудыг бий болгох богино мөчлөгийг илтгэж байгааг санаарай. Байнга шинэчлэгдэж байдаг нэг мастер салбарт шинэ функцийг боловсруулж байгаа бөгөөд үүнд аль хэдийн дууссан өөрчлөлтүүд багтсан бөгөөд шинэ хувилбаруудыг тогтворжуулахын тулд зургаан сар тутамд салбаруудыг салбарладаг.

Java 18-ийн шинэ боломжууд:

  • Өгөгдмөл кодчилол нь UTF-8 юм. Тэмдэгтийн кодчилолд тулгуурлан текст өгөгдлийг боловсруулдаг Java API нь системийн тохиргоо болон хэлний тохиргооноос үл хамааран бүх платформ дээр анхдагч байдлаар UTF-8-г ашиглах болно. Системийн локал тохиргоонд тулгуурлан кодчиллыг сонгосон хуучин төлөв рүү буцахын тулд та "-Dfile.encoding=COMPAT" сонголтыг ашиглаж болно.
  • Уг багцад com.sun.net.httpserver багц багтсан бөгөөд үүнд jwebserver хэрэгсэл болон статик контентод үйлчлэх энгийн http серверийг хэрэгжүүлсэн номын сангийн API (CGI болон servlet-тэй төстэй зохицуулагчийг дэмждэггүй). Суурилуулсан HTTP сервер нь ажлын ачаалалд тохируулагдаагүй бөгөөд хандалтын хяналт, баталгаажуулалтыг дэмждэггүй, учир нь энэ нь үндсэндээ төслийн прототип, дибаг хийх, туршихад ашиглахад зориулагдсан юм.
  • JavaDoc нь API баримт бичигт ажлын жишээнүүд болон кодын хэсгүүдийг оруулах "@snippet" шошгыг дэмждэг бөгөөд та баталгаажуулах хэрэгсэл, синтакс тодотгол, IDE нэгтгэлийг ашиглаж болно.
  • Арга, талбар, анги үүсгэгчийн талаарх мэдээлэл авах, мөн ангиудын дотоод бүтцэд хандахад зориулагдсан java.lang.reflect API (Core Reflection)-ийн хэрэгжилтийг дахин зохион бүтээсэн. Java.lang.reflect API нь өөрөө өөрчлөгдөөгүй хэвээр байгаа ч одоо байт код үүсгэгч ашиглахын оронд java.lang.invoke модулийн өгсөн аргын бариулуудыг ашиглан хэрэгжиж байна. Энэхүү өөрчлөлт нь java.lang.reflect болон java.lang.invoke-ийн хэрэгжилтийг нэгтгэж, засвар үйлчилгээг хялбарчлах боломжийг бидэнд олгосон.
  • X86_64 болон AArch64 процессорууд дээрх векторын зааврыг ашиглан гүйцэтгэдэг векторын тооцоололд зориулсан функцээр хангадаг, олон утгыг (SIMD) нэгэн зэрэг ашиглах боломжийг олгодог Vector API-ийн гурав дахь урьдчилан харах хувилбарыг санал болгов. HotSpot JIT хөрвүүлэгчийн скаляр үйлдлүүдийг автоматаар векторжуулах боломжуудаас ялгаатай нь шинэ API нь параллель өгөгдөл боловсруулах векторжуулалтыг тодорхой хянах боломжийг олгодог.
  • Хост нэр болон IP хаягийг шийдвэрлэх SPI интерфэйс (үйлчилгээ үзүүлэгчийн интерфейс) нэмэгдсэн нь үйлдлийн системээс санал болгож буй зохицуулагчтай холбоогүй java.net.InetAddress-д өөр шийдлүүдийг ашиглах боломжийг олгоно.
  • Гадаад функц ба санах ойн API-ийн хоёр дахь урьдчилан үзэх хувилбарыг өгсөн бөгөөд энэ нь програмуудад Java-ийн ажиллах хугацаанаас гадуур код болон өгөгдөлтэй харилцах боломжийг олгодог. Шинэ API нь JVM бус функцуудыг үр дүнтэй дуудаж, JVM удирддаггүй санах ойд хандах боломжийг олгоно. Жишээлбэл, та JNI ашиглахгүйгээр гадаад хуваалцсан номын сангаас функцуудыг дуудаж, процессын өгөгдөлд хандах боломжтой.
  • Өмнө нь ашиглах шаардлагатай байсан хэд хэдэн утгыг нэг дор багтаасан уян хатан хэв маягийг яг тодорхой утгуудаас илүүтэйгээр "тохиолдол" шошгонд ашиглах боломжийг олгосон "шилжүүлэх" илэрхийлэлд загвар тааруулах хоёр дахь туршилтын хэрэгжилт нэмэгдсэн. “хэрэв...өөрөөр” гэсэн үг хэллэгийн нүсэр хэлхээ. Объект o = 123L; Мөр форматлагдсан = шилжүүлэгч (o) { case Бүхэл тоо i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("давхар %f", d); case String s -> String.format("String %s", s); анхдагч -> o.toString(); };
  • Дуусгах механизм болон түүнтэй холбоотой Object.finalize(), Enum.finalize(), Runtime.runFinalization() болон System.runFinalization() зэрэг аргууд хуучирсан бөгөөд дараагийн хувилбарт идэвхгүй болно.
  • ZGC (Z Garbage Collector), SerialGC, ParallelGC хог цуглуулагч нь мөрийн давхардалгүй байдлыг дэмждэг.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх