Java SE 20 berdan

Piştî şeş mehên pêşveçûnê, Oracle platforma Java SE 20 (Java Platform, Edition Standard 20) derxist, ku projeya çavkaniya vekirî OpenJDK wekî pêkanîna referansê bikar tîne. Ji xeynî rakirina hin taybetmendiyên paşverû, Java SE 20 bi serbestberdanên berê yên platforma Java-yê re lihevhatina paşverû diparêze - piraniya projeyên Java-yê yên ku berê hatine nivîsandin dema ku di bin guhertoya nû de têne xebitandin dê hîn jî bêyî guheztinê bixebitin. Avakirinên Java SE 20 yên sazkirî (JDK, JRE, û Server JRE) ji bo Linux (x86_64, AArch64), Windows (x86_64), û macOS (x86_64, AArch64) têne amadekirin. Ji hêla projeya OpenJDK ve hatî pêşve xistin, pêkanîna referansa Java 20 bi tevahî di bin lîsansa GPLv2 de bi îstîsnayên GNU ClassPath vekirî ye da ku rê bide girêdana dînamîkî bi hilberên bazirganî re.

Java SE 20 wekî serbestberdana piştgirîya birêkûpêk tête kategorîze kirin, digel ku nûvekirin berî berdana din were berdan. Pêdivî ye ku şaxa piştevaniya demdirêj (LTS) Java SE 17 be, ku dê heya 2029-an nûvekirinan bistîne. Bînin bîra xwe ku bi berdana Java 10-ê dest pê kir, proje veguherî pêvajoyek nû ya pêşkeftinê, ku tê wateya çerxek kurttir ji bo avakirina berdanên nû. Fonksiyonên nû naha di yek şaxek masterê ya ku bi domdarî nûvekirî de tê pêşve xistin, ya ku guheztinên jixwe qedandî vedihewîne û ji kîjan şeş mehan carekê şax têne şax kirin da ku serbestberdanên nû aram bike.

Taybetmendiyên nû di Java 20 de ev in:

  • Piştgiriyek pêşîn ji bo Nirxên Scoped heye, ku dihêle ku daneyên neguhêrbar li ser mijaran werin parve kirin û daneyên bi bandor di navbera têlên zarokan de werin veguheztin (nirx têne mîras kirin). Nirxên Scoped têne pêşve xistin da ku li şûna mekanîzmaya guhêrbarên tîrêjê-herêmî biguhezînin û dema ku jimareyên pir mezin ên têlên virtual (hezar an bi mîlyonan têlan) bikar tînin bikêrtir in. Cûdahiya sereke di navbera Nirxên Scoped û guhêrbarên tîrêjê-herêmî de ev e ku yên berê carekê têne nivîsandin, di pêşerojê de nayên guhertin, û tenê ji bo dirêjahiya darvekirina têxê berdest dimînin. class Server { statîk dawîn ScopedValue CURRENT_USER = nû ScopedValue(); Void serve(Daxwaza Daxwaz, Bersiva Bersiv) { var asta = (daxwaz. Destûrdar e()? ADMIN : MÊVAN); var bikarhêner = Bikarhênerê nû (asta); ScopedValue.where(CURRENT_USER, bikarhêner).run(() -> Application.handle(daxwaz, bersiv)); } } class DatabaseManager { DBConnection vekirî() { var user = Server.CURRENT_USER.get(); heke (!user.canOpen()) nû InvalidUserException(); DBConnectiona nû vegerîne(...); } }
  • Pêşniyarek duyemîn a qalibên tomarê hate zêdekirin, ku taybetmendiya berhevdana nimûneyê ya ku di Java 16 de hatî destnîşan kirin dirêj dike da ku nirxên çînên tomarê pars bike. Mînak: tomar Point(int x, int y) {} static void printSum(Object obj) { if (obj instanceof Point p) { int x = px(); int y = py(); System.out.println(x+y); } }
  • Pêkanîna pêşîn a çaremîn a lihevhatina şêwazê di daxuyaniyên "guhêrbar" de hate zêdekirin, ku dihêle etîketên "doz" ne nirxên tam, lê qalibên maqûl ên ku bi carekê rêzek nirxan vedigirin, bikar bînin, ji bo ku berê hewce bû ku meriv giran bikar bîne. zincîrên biwêjên "eger... dî". String static formatterPatternSwitch(Object obj) { vegere guhêrbar (obj) {case Hejmara Temam i -> String.format("int %d", i); case Long l -> String.format("dirêj %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); }; }
  • Pêkanîna pêşîn a duyemîn a API-ya FFM (Fonksiyon û Bîra Biyanî) hate zêdekirin, ku dihêle hûn pêwendiya bernameyên Java-yê bi kod û daneya derveyî re bi navgîniya bangkirina fonksiyonên ji pirtûkxaneyên derveyî û gihîştina bîranîna derveyî JVM-ê organîze bikin.
  • Pêşniyarek duyemîn a mijarên virtual hate zêdekirin, ku ew mijarên sivik in ku nivîsandinê pir hêsan dikin û serîlêdanên pir-tehlî-performansa bilind diparêzin.
  • API-ya ceribandinê ya duyemîn ji bo paralelîzma birêkûpêk lê zêde kir, ku pêşkeftina serîlêdanên pir-mijarî hêsan dike bi dermankirina gelek peywirên ku di mijarên cihêreng de wekî blokek yekane têne xebitandin.
  • Pêşniyarek pêncemîn a Vector API hate zêdekirin, fonksiyonên ji bo hesabên vektorê yên ku bi karanîna rêwerzên vektorê li ser pêvajoyên x86_64 û AArch64 têne kirin peyda dike û dihêle ku operasyon bi hevdemî li ser gelek nirxan (SIMD) werin sepandin. Berevajî kapasîteyên ku di berhevkarê HotSpot JIT-ê de ji bo vektorîkirina otomatîkî ya operasyonên skalar têne peyda kirin, API-ya nû gengaz dike ku bi eşkere vektorîzasyonê ji bo hilberandina daneya paralel kontrol bike.

Source: opennet.ru

Add a comment