Java SE 17 emissio

Oraculum post sex menses evolutionis Java SE 17 dimisit (Java Platform, Standard Edition 17), quo in project fonte aperto OpenJDK utitur ut exsecutionem referat. Exceptis amovendis notarum quarundam obsoletarum, Java SE 17 convenientiam retrorsum conservat cum priorum emissione suggesti Javae - pleraque ante scripta Java incepta sine mutationibus sub nova versione laborabit. Parati ad instituendum aedificationes Javae SE 17 (JDK, JRE et Servo JRE) parata sunt Linux (x86_64, AArch64), Fenestra (x86_64) et macOS (x86_64, AArch64). Developed by the Project OpenJDK, the Java 17 reference implementation is fully open source under the GPLv2 license, with GNU ClassPath exceptions permittens dynamicam conjunctionem cum productis commercialibus.

Java SE 17 in emissione Longa (LTS) collocatur, quae renovationes usque ad 2029 recipiet. Renovationes pro priore Javae 16 miliario emissione disiunctae sunt. Ramus prior LTS Javae 11 usque ad 2026 sustentabitur. Proxima LTS emissio pro Septembri 2024 horarium est. Commonefaciamus te quod incipiens a emissione Javae X, consilium commutavit ad novum processum evolutionis, implicando breviorem cyclum ad novas emissiones formandas. Nova functionality nunc in uno constanter renovato ramo magistri evolvitur, quod includit mutationes paratas factas et e quibus singulis sex mensibus rami ramosi ad novas solutiones stabiliendas.

Novae notae in Java 17 includuntur:

  • Exsecutio experimentalis exemplaris adaptationis in "switch" locutionibus proponitur, quae permittit utens valores non exigendos in pittaciis "casu", sed exempla flexibilia, quae simul seriem valorum inducunt, quibus antea gravia uti necesse erat. vincula "si ... aliud" locutiones. Praeterea "switch" facultatem nullas bonas tractandi habet. Objice -o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long%d", l); d -> String.format("duplex %f", d); case String s -> String.format ("String %s", s); default -> o.toString(); };
  • Firmata subsidia ad classes et interfaces signatas, quae non possunt ab aliis generibus et instrumentis uti ad exsecutionem hereditandam, extendendam vel delendam. Classes obsignatae etiam magis declarativum modum praebent ad restringere usum superclassium quam accessum adiectiuarum, innixum expresse enumeratis classibus pro extensione concessa. involucrum com.example.geometry; forma publica signati ordinis permittit com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}
  • Secunda praevisio Vectoris API proponitur, quae munera vectoris calculis praebet quae instructionibus vectoris in x86_64 et AArch64 processoribus exercentur et operationes simul pluribus valoribus applicandis permittunt (SIMD). Dissimiles facultates quae in HotSpot JIT compilator pro auto- vectorizatione operationum scalarium praebentur, nova API efficit ut vectorizationem pro notitia processus parallela explicite regere possit.
  • Praemonstratio Functionum & Memoriae API extranearum addidit, quae admittit applicationes ad mutuam cum codice et notitia extra Iava runtime. Novus API te permittit ut efficaciter munera non-JVM vocare et adire memoriam non-JVM-geri. Exempli gratia, munera vocare potes ab extra bibliothecas communes et processum accessum data sine JNI.
  • MacOS machinamentum reddens, quod potentias Java 2D API, quae vicissim potentias Swing API, API graphicis Metallicis utendi accommodata est. MacOS suggestum per defaltam OpenGL uti pergit, et ope Metalli firmamentum postulat occasum "-Dsun.java2d.metal=verum" et saltem currens macOS 10.14.x.
  • Portum adiecit pro suggestu macOS/AArch64 (Apple computatorium e novo Apple M1 xxxiii). Peculiaris notatio portus adiuvat W^X (Scribe XOR Execute) mechanismum memoriae tutelae, in quo paginae memoriae simul accedere ad scripturam et exsecutionem non possunt. (codice exsecutioni mandari non potest nisi postquam scriptura debilitata est, et scriptura ad memoriam pagina fieri potest, nisi postquam exsecutio debilitata est).
  • Revertuntur ad solum strictfp semantics utentes ad puncta volitare locutiones. Support pro "default" semanticorum, praesto cum emissione Javae 1.2, discontinuata est, etiam simpliciores operandi in systemata cum coprocessoribus antiquissimis x87 math (post instructionum SSE2 adventus, necessitas additorum semanticorum evanuit).
  • Novae rationes instrumentorum ad numerum generantium pseudorandom perficiendum sunt, et additamenta algorithmorum ad melioris generationis temere numerorum effectae sunt. Applicationes data sunt facultate algorithmum eligendi ad numeros pseudorandom generandos. Improved support for generating temere objectum fluminum.
  • Stricte encapsulationis omnium JDK internorum, exceptis APIs criticis sicut sun.misc.Unsafe. Strictae encapsulationis impedit conatus e codice accedere ad classes internas, modos et agros. Antea strictus modus encapsulationis debilitatur per optionem "-illegal-access=permittit", sed hoc nunc deprecatum est. Applicationes quae accessum requirunt ad classes, modos et agros interna, eas explicite definiant utentes optione addendi vel addendi Opens attributi in manifesta tabella.
  • Applicationes, facultates datae ad filtra deserializationis definiendas datas, quae possunt esse contextus sensibilis et dynamice selectae secundum certas operationes deserializationes. Filtra specificata applicantur ad totam machinam virtualem (JVM-widem), i.e. non solum applicationem ipsam, sed etiam tertiam partem bibliothecarum in applicatione adhibita.
  • Methodum adductius addidit javax.swing.filechooser.FileSystemView.getSystemIcon iconibus amplis ut UI in amplis DPI screens emendavit.
  • The java.net.DatagramSocket API subsidium praebet nexus cum coetibus Multicast sine necessitate separati java.net.MulticastSocket API.
  • IGV (specimen Graph Visualizer) utilitas emendata est, dum interactive visualizationis codicis intermedii repraesentationem in Compilator VM C2 JIT HotSpot.
  • In JavaDoc, per analogiam cum compilator javac, cum error sit output, numerus lineae problematicae in fonte lima et locus erroris nunc indicatur.
  • Addidit the native.encoding property, nominem systematis charactere delatam (UTF-8, koi8-r, cp1251, etc.).
  • The java.time.InstantSource interface additum est permittens tempus manipulationis sine respectu temporis zonae.
  • Addidit java.util.HexFormat API convertendi ad repraesentationem hexadecimalem et vice versa.
  • Blackhole modus ad compilator additus est, qui eliminationem operationum-codex mortuas disables, quae cum probationibus faciendis faciendis adhiberi potest.
  • Addidit "-Xlog: async" optionem ad acta runtime ut in asynchrono modo.
  • Cum iungebat nexus secure, TLS 1.3 per defaltam fit (antea TLS 1.2 adhibita est).
  • Antea obsoleta declaravit Applet API (java.applet.Applet*, javax.swing.JApplet), quae applicationes Javae in navigatro currendi adhibita erat, ad categoriam relatas remotionis (perdi- gentia post finem subsidii amissa est. plugin Java pro navigatoribus).
  • Procurator securitatis, quae gravitatem suam iamdudum amisit et evasit ut post finem subsidii plugin navigatoris incognita moveretur ad categoriam eorum quae ad remotionem accedebant.
  • RMI Activation mechanismus remotus est, qui est iam datus, relegatus ad categoriam optionis in Java 8 et fere numquam in usu moderno adhibetur.
  • Compilator experimentalis, qui JIT (modo-in-tempus) sustinet pro dynamica compilatione codicis Javae pro HotSpot JVM, necnon modus compilation praecedente (AOT, ante-of-time) classium in codice machinae antequam virtualis apparatus incipiens remotus a SDK. Compilator in Java scriptus est et in opere propositi Graal fundatur. Notatur compilator sustentationem multum laboris requirit, qui non iustificatur cum ab tincidunt non est postulatum.

Source: opennet.ru