Java8 vs Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​Forbedringer i Java 9 som du trenger å vite

Mange utviklere vil vende seg til Java for å lage applikasjoner. Som vi alle vet, er Java utrolig allsidig, lett å bruke, sikkert, pålitelig og mest av alt er det plattformuavhengig. Java har flere enn 6,5 millioner utviklere globalt. Som sådan er det det perfekte språket å bruke siden referansemateriale også er rikelig.

Likevel har Java fortsatt å vokse og utvikle seg gjennom årene. Opprettet av Sun Microsystems i 1995 , Java har fortsatt å bevise sin pålitelighet. Den forrige versjonen av Java som har vært i bruk siden 18. mars 2014, var Java SE 8. Da den ble avduket, sa kritikere at det var et kunstverk, en utgivelse av strømmer av endringer i API -er. Nå er det en ny gutt på blokken. Nyopprettet Java 9 er endelig her. Avduket 21. september 2017 , Java SE 9 forventes å riste opp måten vi gjør ting på og måten utviklere lager applikasjoner på.







På grunn av Java 8s utrolige smidighet og allsidighet, skapte bedrifter utrolige løsninger for bransjer som helse, fintech og andre store sektorer. Java 9, derimot, lover å bygge videre på det og levere helt nye funksjoner til utviklerne.



Så, la oss se på hva som er nytt i Java 9.



Prosjekt Jigsaw

Dette er et av høydepunktene i Java 9. I utgangspunktet er prosjektet stikksag navnet som er gitt til modularisering av Java. Ettersom puslespillbitene går sammen stykke for stykke for å skape et større bilde, gjør det også modulæriteten til Java 9. Dette betyr at koden er delt opp i deler (moduler) på grunn av oppgavene eller funksjonalitetene som skal utføres. Dette er et stort skritt fremover fordi modulering ikke bare gjør gjenbruk av koden mye mer behagelig, men også håndtering og feilsøking er grei. På grunn av dette finner vi ut at utviklere kommer til å ha det lettere å lage applikasjoner med Java 9 enn med noen andre tidligere bygg.





En annen fordel med modularisering er at utviklere nå kan lage lette, skalerbare applikasjoner. Spesielt med tingenes internett fortsetter å vokse, finner vi flere slike apper skrevet i Java.

JEP 222: jshell : Java -skallet

Java 9 har det nye verktøyet REPL (read-eval-print loop). Etter å ha vært i sin utviklingsfase under Prosjekt høyre denne funksjonen har endelig blitt utgitt for publikum. Denne nye funksjonen er et interaktivt verktøy som brukes til å teste uttrykk, utsagn og erklæringer skrevet i Java. Hovedmålet med JShell API og verktøyet er å gi utvikleren en sjanse til å teste funksjonene nevnt ovenfor i skallstatusen. Dette er først og fremst rask koding og undersøkelse, der uttrykk og utsagn ikke trenger å være inne i en metode og metoder i sin tur, ikke trenger å være i en klasse. På denne måten kan en utvikler raskt analysere kodebiter og se om de vil gi ønsket effekt.



Jshell -verktøyet vil ha et kommandolinjegrensesnitt med følgende funksjoner:

  • Konfigurerbar forhåndsdefinert definisjon og import.
  • En historie med redigeringsmuligheter
  • Automatisk tillegg av nødvendige terminale semikolon

Kompilatorforbedringer

For å sikre at applikasjoner kjører raskere, har Java 9 skaffet seg en ny teknologi som kalles forhånds-for-tid (AoT) -samling. Denne teknologien, om enn i sine eksperimentelle faser, gjør det mulig for Java -klasser å bli samlet til innfødt kode allerede før den lanseres i de virtuelle maskinene. Mulighetene for dette er uendelige. Imidlertid forbedrer den mer umiddelbare bruken av denne teknologien oppstartstiden for store og små apper uten avskrekk i toppytelse.

I ettertid bruker Java 8 Just-in-time (JIT) -kompilatorer. Disse kompilatorene er raske, men tar litt mer tid før de varmes opp. Det kan være ubetydelig for mindre programmer eller apper fordi det ikke er mye kode å kompilere. For de større appene er fortellingen imidlertid ganske annerledes. Oppvarmingen en just-in-time-kompilator trenger, betyr at noen metoder ikke blir kompilert, noe som svekker appens ytelse.

Den andre fasen i implementering av smart kompilering er forbedring av Javac -verktøyets bærbarhet og stabilitet. Forbedring av dette verktøyet gjør det mulig å bruke det direkte i JVM (Java Virtual Machine) som standardinnstilling. Bortsett fra det har verktøyet blitt generalisert på en slik måte at utviklere kan bruke det selv utenfor JDK -miljøet. For utviklere er dette en stor avtale siden Java kan brukes i større prosjekter som enkelt kan innkvarteres uten å bekymre seg for kompatibilitet. En annen avgjørende oppdatering er bakoverkompatibiliteten til Javac -kompilatoren hvis eneste funksjon er å kompilere apper og programmer som er opprettet ved hjelp av Java 9 for også å kjøre på eldre Java -versjoner.

Bedre JavaScript -støtte

Siden JavaScript fortsetter å ta fart og bli en favoritt for mange, har JDK 9 gjort det mulig å bygge inn JavaScript i Java -apper. Alt dette gjøres ved hjelp av Prosjekt neshorn hvis hovedmål var å lage høy ytelse, men lett JavaScript -runtime i Java. Dette ble selvfølgelig levert da de leverte en JavaScript -motor i JDK versjon 8. Nå i versjon 9 er det et parser -API hvis mål er Nashorns ECMAScript -syntaksrekkefølge. Hva denne API-en gjør, er å aktivere analyse av ECMAScript-kode etter serversideramme og IDE-er uten å måtte stole på de interne implementeringsklassene til Project Nashorn.

G1 som søppelsamleren

I motsetning til hva mange tror, ​​har Java ikke én, men fire søppeloppsamlere. Disse søppeloppsamlerne er ikke skapt like, og som sådan innebar det å velge feil å ha ytelsesproblemer i applikasjonen. I Java 8 var standard søppelsamler Parallel / Throughput Collector. Denne søppelsamleren er erstattet av forgjengeren Garbage-first collector (G1). Siden G1-samleren ble designet for å støtte hauger større enn 4 GB effektivt, er den den perfekte søppelsamleren for både små og store applikasjoner.

API -oppdateringer

I denne nye versjonen av Java -utviklingssett er det gjort flere oppdateringer av API -ene, og vi vil diskutere det mest bemerkelsesverdige.

Den aller første er Java 9 -samtidighetsoppdateringene som har Java.util.concurrent.Flow og CompletableFuture. Tar sikte på å løse problemet som er mottrykk. Flow er Java's implementering av Reactive Streams API som i hovedsak tar sikte på å løse mottrykkproblemet. Baktrykk er oppbygging av data som oppstår når frekvensen av innkommende forespørsler er større enn behandlingskapasiteten til applikasjonen. På sikt er dette et problem fordi applikasjonen ender opp med en buffer med ubehandlede data. Denne oppdateringen vil bety bedre håndtering av tidsavbrudd, forsinkelser og underklassering.

Sikkerhet er en del av Java's kjerneidentitet. Som sådan, støtte for den nylig godkjente HTTP 2.0 RFC er et stort pluss. HTTP 2.0 RFC ble bygget på toppen av Googles SPDY -algoritme som allerede har begynt å bære frukt med hastighetsforbedringer fra 11,81% til 47,7% fra forrige HTTP 1.1. Denne klient -API -en er en oppgradering av kjerne -HTTP -protokollene og HttpURLConnection API som er problematisk, for å si det mildt siden den ble laget allerede før HTTP 1.

Code caching har alltid vært en strategi som ble brukt for å gjøre applikasjoner raskere og jevnere gjennom årene. Det er imidlertid ikke uten begrensninger, og dette har ikke gått upåaktet hen. En oppdatering i Java 9 viser tydelig JDK 9 som deler bufrede koder i mindre deler og dermed forbedrer den generelle ytelsen. JDK 9 bruker spesielle iteratorer for å hoppe over ikke-metodekode; å skille profilert, ikke-profilert og ikke-metodisk kode; og forbedre noen referanser for gjennomføringstid.

Fordeler med Java 9

For mange bedriftseiere er det ingen forskjell mellom Java 8 og 9. Men for utvikleren er det en verden av forskjell. Dette er fordelene Java SE 9 har i forhold til forgjengerne.

  • Utviklingshastigheten vil økes betydelig takket være modulsystemet som ikke bare er lettere å administrere og feilsøke, men også gjenbrukbart, noe som betyr at du ikke trenger å skrive hele koden fra bunnen av.
  • Forbedre ressurseffektiviteten for applikasjoner fra modularisering og også gjøre ressursdragingen enklere siden utviklere bare tar de modulene som trengs i stedet for hele JRE.
  • Sanntidsanalyse av kodebiter som mikro benchmarks pleide å se på ytelsen til små biter av 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 -opplæring