Java është një nga gjuhët programuese më të përdorura dhe më të kërkuara në botë. Që kur erdhi në 1995, Java vazhdoi të përmirësohej me kalimin e kohës. Me ciklin e tij të shpeshtë të lëshimeve në vitet e fundit, kërkon pak më shumë përpjekje për të vazhduar me publikimet e reja.

Ne do të fillojmë me një seksion të vogël pyetjesh dhe përgjigjesh për të sqaruar pyetjet dhe më pas do të diskutojmë ndryshimet në Java 11 me qasjen "me pak fjalë". Përafërsisht në 15 minuta, do të njiheni me atë që ka ndryshuar me Java 11. Ekziston gjithashtu një "version rrëshqitës" i artikullit.

Le të fillojmë.

Para së gjithash, pse ka kaq shumë publikime?

Oracle dikur lëshonte një version të ri çdo 2 deri në 3 vjet. Megjithatë, u deshën përpjekje të mëdha që kompanitë të miratonin shumë ndryshime në të njëjtën kohë.

Oracle më pas miratoi qasjen e lëshimit të vazhdueshëm dhe shpalli periudhën e lëshimit 6-mujore. Që nga Java 9, Oracle lëshon një version të ri Java me ndryshime relativisht të vogla çdo 6 muaj.

Çfarë është LTS?

Një version afatgjatë ka tendencë të jetë një standard i industrisë për disa vite. Edhe nëse lëshimet e reja vijnë pas tij, ai përsëri merr përditësime. Për shembull, Java 8 lëshohet në vitin 2014, duke marrë ende përditësime në vitin 2020 dhe do të ketë mbështetje të zgjatur deri në vitin 2030.

Pra, në cilin version duhet të përmirësoj?

Oracle rekomandon fuqimisht kalimin në Java 11 ose një version më të fundit. Seksioni më poshtë nga Wikipedia është i rëndësishëm,

Oracle (dhe të tjerët) "rekomandojmë shumë që të çinstaloni versionet më të vjetra të Java", për shkak të rreziqeve serioze për shkak të çështjeve të pazgjidhura të sigurisë. Meqenëse Java 9 (dhe 10) nuk mbështetet më, Oracle këshillon përdoruesit e tij që të "kalojnë menjëherë" në Java 11 (Java 15 është gjithashtu një opsion jo-LTS) - wiki

Java 11 është LTS më e fundit, deri në lëshimin e Java 17 në shtator 2021. Është në përputhje me Java 8 (ne do të flasim për detajet). Gjithashtu ai sjell veçori dhe përmirësime të rëndësishme përveç Java 8.

A është Java 11 falas për t'u përdorur?

Me pak fjalë, po.

Konfuzioni vjen nga licencimi. Ekzistojnë dy lloje licencash. OpenJDK është falas për t'u përdorur, ndërsa Oracle JDK ofron mbështetje afatgjatë për një çmim. Binarët e tyre janë pothuajse identikë, kështu që ju mund të përdorni OpenJDK me lehtësi. Nëse jeni të interesuar "këtu" është lista e plotë e dallimeve për Java 11.

Le të vazhdojmë me atë që Java 11 sjell në tryezë.

Përmbledhje e veçorive të reja

  1. HTTP API
  2. Nisja e programit Java me një skedar të vetëm
  3. Metodat e reja të bibliotekës për vargjet, koleksionet dhe skedarët
  4. Përmirësimet e Performancës dhe Sigurisë
  5. Përmirësime të tjera
  6. Karakteristikat e hequra dhe të vjetruara

1. HTTP API

HTTP API është një bibliotekë Java për të ekzekutuar kërkesat HTTP.

motivimi

Për të zëvendësuar HttpURLConnection i cili u prezantua me Java 1.1 në 1997, dhe është i vështirë për t'u përdorur dhe mirëmbajtur.

veçori

  • Mbështet protokollet HTTP/1.1 dhe HTTP/2
  • Mbështet metodat e zakonshme HTTP si GET, POST, PUT, DELETE
  • Mund të trajtojë komunikimin sinkron dhe asinkron

si të përdorni

  1. Krijoni, inicializoni dhe konfiguroni HttpClient
  2. Krijoni dhe inicializoni HttpRequest
  3. Kaloni HttpRequestHttpClient, ekzekutoni kërkesën dhe merrni HttpResponse
  4. Trajtoni HttpResponsepër qëllimet tuaja

shembull

2. Nisja e programit Java me një skedar

Java 11 mbështet ekzekutimin e programit Java me një skedar të vetëm me një komandë të vetme.

detaje

  • Mundëson zhvillimin miqësor të Java për fillestarët dhe prototipimin me shpejtësi të lartë.
  • Duhet të jetë vetëm një program me një skedar të vetëm (me një ose më shumë klasa).
  • Ne nuk mund të përdorim varësi të jashtme.

si të përdorni

Le të supozojmë se emri i skedarit tonë është MyProgram.java, për ta ekzekutuar atë, duhet vetëm të përdorim java MyProgram.java.

3. Metodat e reja të bibliotekës për vargjet, koleksionet dhe skedarët

Java 11 shtoi disa metoda të dobishme për bibliotekat e përmendura për lehtësi.

vargjet api

  • Përsëritni një varg: Përsëritni një varg n herë me String.repeat(Integer). Shembull: " ".repeat(10)
  • Kontrollo hapësirën boshe/të bardhë: Kontrollo nëse vargu është bosh ose vetëm hapësira e bardhë. String.isBlank(). Do të hedhë NullPointerExceptionnëse vargu është bosh.
  • Hiq hapësirat e bardha: Hiq String.stripLeading() kryesore, String.stripTrailing() pasuese ose të dyja String.strip()
  • Përpunoni vargun me shumë rreshta: Konvertoni vargun me shumë rreshta /n në rrjedhën e linjave me String.lines()

koleksionet api

  • Konvertoni koleksionin në një grup: Ky proces u bë më i lehtë me Java 11. Për shembull, konvertimi i një liste studentësh në një grup vargjesh do të kryhej me students.toArray(String[]::new)

fakultative dhe kallëzues.

  • Mungimi i një kallëzuesi: Ne mund të filtrojmë elementët që nuk kanë një kusht të caktuar me Predicate.not(myCustomPredicate).

skedarët api

  • Leximi/shkrimi më i lehtë i skedarit: Falë Files.readString(path) dhe Files.writeString(path, charSequence, options) ne mund ta arrijmë këtë operacion.

4. Përmirësimet e performancës dhe sigurisë

Përmirësimet e performancës

  • Përmirësimet e G1 Garbage Collector: G1 u prezantua në Java 7 dhe u bë GC e parazgjedhur në Java 9. Me Java 11, G1 është përmirësuar për performancë të lartë. Java 11 përmirëson kohët e ndalimit (klienti që pret përgjigjen e aplikacionit të shkaktuar nga GC) deri në 60% (burimi).
  • ZGC: Një GC eksperimentale, por e shkallëzuar dhe me vonesë të ulët. Garanton kohën maksimale të pauzës prej 10 ms. ZGC është i shkëlqyeshëm për aplikacionet që konsumojnë memorie që trajtojnë shumë të dhëna.
  • Epsilon: Një GC eksperimentale, por me kosto të ulët. Është një përshtatje e mirë për aplikacionet me jetë të shkurtër (ekzekutimi i një komande të vetme dhe më pas mbyllja).

Përmirësimet e sigurisë

  • Siguria e fundit e shtresës së transportit (TLS) përmirësoi performancën dhe sigurinë e HTTPS. Java 11 mbështet protokollin TLS 1.3.

5. Përmirësime të tjera

  • Përdorimi i var në lambdas: Ne kemi takuar var me Java 10, tani mund ta përdorim atë në lambda. Avantazhi i kësaj veçorie është se tani mund të shënojmë variablat lambda (p.sh. @NotNull)
  • Përshtatja e Unicode 10: Java 11 përdor Unicode 10, një përmirësim nga Java 10 me Unicode 8. Kjo përfshin 16,018 karaktere të reja dhe 10 skripte të reja.
  • Kontrolli i hyrjes së ndërlidhur: Klasa e brendshme mund të aksesojë të gjitha variablat dhe metodat private të klasës së jashtme (p.sh. Outer.name).
  • Java Flight Recorder: JFR është një mjet profilizimi dhe diagnostikimi (përdorimi i burimeve etj.). Ne gjithashtu mund të përdorim Java Mission Control për të vizualizuar të dhënat e ofruara nga JFR.

6. Veçoritë e hequra dhe të vjetruara

veçoritë e hequra

Java 11 është e pajtueshme me Java 8. Kështu që ju mund të ndryshoni me shpejtësi nga Java 8 në 11. Nëse përdorni disa nga paketat e mëposhtme, gjithçka që duhet të bëni është të shtoni varësinë zëvendësuese në projektin tuaj.

Gjithashtu, Appletet dhe Java Web Start hiqen plotësisht pa zëvendësim. Nëse jeni duke kërkuar për zhvillimin e aplikacionit për desktop Java, shikoni JavaFX.

tipare të vjetruara

  • Motorja JavaScript Nashorn: Meqenëse është e vështirë të ruash përputhshmërinë me ndryshimin e shpejtë të ECMAScript, ai tani është i vjetëruar.

përfundimi

Java 11 është versioni më i fundit i LTS dhe prezantoi veçori dhe përmirësime të dobishme në krye të lëshimeve të mëparshme. Prezantohet një klient i ri HTTP, metoda të reja të bibliotekës për vargjet, koleksionet, kallëzuesit dhe skedarët. Më tej, performancat e grumbulluesve të plehrave janë optimizuar, së bashku me dy grumbullues të rinj plehrash, ZGC dhe Epsilon.

Nëse jeni duke mësuar të gjitha aspektet e Java me pak fjalë, mos ngurroni të shikoni artikullin tim "Java me pak fjalë".

Gëzuar kodimin!