Java8 vs Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​Forbedringer i Java 9, som du skal vide

Mange udviklere vender sig til Java for at oprette applikationer. Som vi alle ved, er Java utrolig alsidigt, let at bruge, sikkert, pålideligt og mest af alt er det platformuafhængigt. Java har en følge af mere end 6,5 millioner udviklere globalt. Som sådan er det det perfekte sprog at bruge, da referencemateriale også er rigeligt.

Ikke desto mindre er Java fortsat med at vokse og udvikle sig gennem årene. Oprettet af Sun Microsystems i 1995 , Java har fortsat bevist sin pålidelighed. Den tidligere build af Java, der har været i brug siden 18. marts 2014, var Java SE 8. Da det blev afsløret, sagde kritikere, at det var et kunstværk, en frigivelse af strømme af ændringer i API'er. Nu er der et nyt barn på blokken. Frisk præget Java 9 er endelig her. Afsløret 21. september 2017 , Java SE 9 forventes at ryste den måde, vi gør tingene på, og den måde, udviklere opretter applikationer på.







På grund af Java 8s utrolige smidighed og alsidighed skabte virksomheder utrolige løsninger til brancher som sundhedspleje, fintech og andre større sektorer. Java 9 på den anden side lover at bygge videre på det og levere helt nye funktionaliteter til udviklerne.



Så lad os se på, hvad der er nyt i Java 9.



Projekt Jigsaw

Dette er et af højdepunkterne i Java 9. Grundlæggende er projektpuslespil navnet modularisering af Java. Efterhånden som puslespilstykker samles stykke for stykke for at skabe et større billede, gør det også modulæriteten i Java 9. Det betyder, at koden brydes op i dele (moduler) på grund af de opgaver eller funktioner, der skal udføres. Dette er et stort skridt fremad, fordi modularisering ikke kun gør genbrug af kode meget mere behagelig, men også håndtering og fejlretning er ligetil. På grund af dette finder vi ud af, at udviklere får lettere ved at oprette applikationer med Java 9 end med andre tidligere builds.





En anden fordel ved modularisering er, at udviklere nu kan oprette lette, skalerbare applikationer. Især med Internet of Things fortsat med at vokse, finder vi flere sådanne apps skrevet i Java.

JEP 222: jshell : Java Shell

Java 9 indeholder det nye read-eval-print loop (REPL) værktøj. Efter at have været i sin udviklingsfase under Projekt rigtigt denne funktion er endelig blevet frigivet til offentligheden. Denne nye funktion er et interaktivt værktøj, der bruges til at teste udtryk, udsagn og erklæringer skrevet i Java. Hovedmålet med JShell API og værktøj er at give udvikleren en chance for at teste de funktioner, der er nævnt ovenfor i shell -tilstanden. Dette er primært hurtig kodning og undersøgelse, hvorved udtryk og udsagn ikke behøver at være inde i en metode og metoder igen, ikke behøver at være inde i en klasse. På denne måde kan en udvikler hurtigt analysere stykker kode og se, om de vil bringe den ønskede effekt.



Jshell -værktøjet har en kommandolinjegrænseflade med følgende funktioner:

  • Konfigurerbar foruddefineret definition og import.
  • En historie med redigeringsmuligheder
  • Automatisk tilføjelse af nødvendige terminale semikolon

Kompilerforbedringer

For at sikre, at applikationer kører hurtigere, har Java 9 skaffet en ny teknologi kaldet forudgående (AoT) kompilering. Denne teknologi, omend i sine eksperimentelle faser, gør det muligt for Java -klasser at blive samlet til indfødt kode, selv før den lanceres i de virtuelle maskiner. Mulighederne for dette er uendelige. Den mere umiddelbare brug af denne teknologi forbedrer imidlertid opstartstiden for store og små apps uden nogen afskrækkelse i topydelse.

Set i bakspejlet bruger Java 8 Just-in-time (JIT) -kompilatorer. Disse kompilatorer er hurtige, men tager lidt mere tid, før de varmer op. Det kan være ubetydeligt for mindre programmer eller apps, fordi der ikke er meget kode at kompilere. For de større apps er fortællingen imidlertid en helt anden. Opvarmningen, som en just-in-time-kompilator har brug for, betyder, at nogle metoder ikke kompileres, hvilket svækker appens ydeevne.

Den anden fase i implementering af smart kompilering er forbedringen af ​​Javac -værktøjets bærbarhed og stabilitet. Forbedring af dette værktøj gør det muligt at bruge det direkte i JVM (Java Virtual Machine) som standardindstilling. Bortset fra det er værktøjet blevet generaliseret på en sådan måde, at udviklere kan bruge det selv uden for JDK -miljøet. For udviklere er dette en stor ting, da Java kan bruges i større projekter, som let kan indkvarteres uden at bekymre sig om kompatibilitet. En anden vigtig opdatering er bagudkompatibilitet af Javac -kompilatoren, hvis eneste funktion er at kompilere apps og programmer, der er oprettet ved hjælp af Java 9, så de også kan køre på ældre Java -versioner.

Bedre JavaScript -understøttelse

Da JavaScript fortsat tager fart og bliver en favorit for mange, har JDK 9 gjort det muligt at integrere JavaScript i Java -apps. Alt dette gøres ved hjælp af Projekt næsehorn hvis hovedmål var at skabe højtydende, men let JavaScript -runtime i Java. Dette blev selvfølgelig leveret, da de leverede en JavaScript -motor i JDK -version 8. Nu i version 9 er der en parser -API, hvis mål er Nashorns ECMAScript -syntaksordre. Hvad denne API gør, er at muliggøre analyse af ECMAScript-kode efter serversiderammer og IDE'er uden at skulle stole på de interne implementeringsklasser i Project Nashorn.

G1 som skraldespand

I modsætning til hvad mange tror, ​​har Java ikke én, men fire affaldssamlere. Disse affaldssamlere er ikke skabt ens, og som sådan betød det at vælge den forkerte at have problemer med ydeevnen i applikationen. I Java 8 var standard affaldssamleren Parallel / Throughput Collector. Denne affaldssamler er blevet erstattet af sin forgænger Garbage-first collector (G1). Da G1-opsamleren var designet til effektivt at understøtte dynger større end 4 GB, er den den perfekte skraldespand til både små og store applikationer.

API -opdateringer

I denne nye version af Java -udviklingssæt er der foretaget flere opdateringer af API'erne, og vi vil diskutere de mest bemærkelsesværdige.

Den allerførste er Java 9 samtidige opdateringer, der har Java.util.concurrent.Flow og CompletableFuture. Formålet er at løse det problem, der er modtryk. Flow er Java's implementering af Reactive Streams API som hovedsageligt har til formål at løse modtryksproblemet. Modtryk er opbygning af data, der opstår, når antallet af indgående anmodninger er større end applikationens behandlingsevne. På sigt er dette et problem, fordi applikationen ender med en buffer af ubehandlede data. Denne opdatering vil betyde bedre håndtering af timeouts, forsinkelser og underklassificering.

Sikkerhed er en del af Javas kerneidentitet. Som sådan støtte til den nyligt godkendte HTTP 2.0 RFC er et kæmpe plus. HTTP 2.0 RFC blev bygget oven på Googles SPDY -algoritme som allerede er begyndt at bære frugt med hastighedsforbedringer fra 11,81% til 47,7% fra den tidligere HTTP 1.1. Denne klient -API er en opgradering til kerne -HTTP -protokollerne og HttpURLConnection -API'en, som er mildest talt problematisk, siden den blev foretaget allerede før HTTP 1.

Code caching har altid været en strategi, der bruges til at gøre applikationer hurtigere og glattere gennem årene. Det er dog ikke uden sine begrænsninger, og dette er ikke gået ubemærket hen. En opdatering i Java 9 viser tydeligt JDK 9, der deler cachelagrede koder i mindre dele, hvilket forbedrer den samlede ydelse. JDK 9 bruger særlige iteratorer til at springe kode uden metode over; at adskille profileret, ikke-profileret og ikke-metodekode; og forbedring af nogle benchmarks for udførelsestid.

Fordele ved Java 9

For mange virksomhedsejere er der ingen forskel mellem Java 8 og 9. Men for udvikleren er der en verden til forskel. Det er de fordele, Java SE 9 har i forhold til sine forgængere.

  • Udviklingshastigheden vil øges betydeligt takket være systemet med moduler, der ikke kun er lettere at administrere og fejlsøge, men også kan genbruges, hvilket betyder, at du ikke behøver at skrive hele koden fra bunden.
  • Forbedring af ressourceeffektiviteten for applikationer fra modularisering og også at gøre ressourcetrækning lettere, da udviklere kun tager de nødvendige moduler i stedet for hele JRE.
  • Realtidsanalyse af kodestykker som f.eks mikro benchmarks bruges til at undersøge ydelsen af ​​små stykker kode.

Kilder

http://openjdk.java.net/jeps/251
https://www.romexsoft.com/blog/java-8-vs-java-9/
https://blogs.oracle.com/java/features-in-java-8-and-9
https://dzone.com/articles/5-features-in-java-9-that-will-change-how-you-deve

Eclipse Java Tutorial