Java8 vs Java9

Java8 vs Java9

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

Mange utviklere vil henvende seg til Java for å lage applikasjoner. Som vi alle vet, er Java utrolig allsidig, enkel å bruke, sikker, pålitelig og mest av alt, det er plattformuavhengig. Java har en følge av mer enn 6.5 millioner utviklere globalt. Som sådan er det det perfekte språket å bruke siden referansemateriell også er rikelig.

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

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

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

Project Jigsaw

Dette er et av høydepunktene til Java 9. I utgangspunktet er Project Jigsaw navnet gitt til modularisering av Java. Når stikksagstykker kommer sammen stykke for stykke for å lage ett større bilde, gjør også modulariteten 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 modularisering ikke bare gjør gjenbrukbarhet av kode mye mer behagelig, men også å håndtere og feilsøke er grei. På grunn av dette finner vi ut at utviklere kommer til å ha en enklere tid å 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 Internet of Things som fortsetter å vokse, finner vi flere slike apper skrevet i Java.

JEP 222: Jshell: Java -skallet

Java 9 har det nye verktøyet Leseval-print Loop (Repl). Etter å ha vært i sin utviklingsfase under Project Kulia er denne funksjonen endelig utgitt for publikum. Denne nye funksjonen er et interaktivt verktøy som brukes til å teste uttrykk, uttalelser og erklæringer skrevet i Java. Hovedmålet med JShell API og verktøyet er å gi utvikleren en sjanse til å teste ut funksjonene som er nevnt ovenfor i Shell State. Dette er først og fremst rask koding og undersøkelse, der uttrykkene og utsagnene ikke trenger å være inne i en metode og metoder etter tur, ikke trenger å være inne 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 redigeringsevner
  • Automatisk tilsetning av nødvendige terminale semikoloner

Kompilatorforbedringer

For å sikre at applikasjoner kjøres raskere, har Java 9 vervet en ny teknologi kalt AT-tid (AOT) -samling. Denne teknologien om enn i sine eksperimentelle faser, gjør det mulig for Java -klasser å bli samlet inn i naturlig kode selv 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 noen avskrekking i topp ytelse.

I ettertid bruker Java 8 Just-in-Time (JIT) Compilers. Disse kompilatorene er raske, men tar litt mer tid før du varmer opp. Det kan være ubetydelig for mindre programmer eller apper fordi det ikke er mye kode å kompilere. For de større appene er imidlertid fortellingen ganske annerledes. Oppvarmingen A Just-in-Time Compiler Behov, betyr at noen metoder ikke blir samlet og svekker appens ytelse.

Den andre fasen i Smart Compilation Deployment er forbedringen av Javac -verktøyets portabilitet 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 som lar utviklere bruke det selv utenfor JDK -miljøet. For utviklere er dette en stor avtale siden Java kan brukes i større prosjekter som lett kan imøtekommes uten å bekymre deg for kompatibilitet. En annen avgjørende oppdatering er den tilbakestående kompatibiliteten til Javac -kompilatoren hvis eneste funksjon er å samle apper og programmer som er opprettet ved hjelp av Java 9 for også å kjøre på eldre Java -versjoner.

Bedre JavaScript -støtte

Ettersom JavaScript fortsetter å få fart og bli en favoritt for mange, har JDK 9 gjort det mulig å legge inn JavaScript i Java Apps. Alt dette gjøres ved hjelp av Project Nashorn, hvis hovedmål var å skape høy ytelse, men likevel lette JavaScript -runtime i Java. Dette ble selvfølgelig levert da de ga en JavaScript -motor i JDK versjon 8. Nå i versjon 9 er det en parser API hvis mål er Nashorns Ecmascript -syntaksrekkefølge. Hva denne API gjør er å mulig.

G1 som søppelsamleren

I motsetning til den vanlige troen, har Java ikke en, men fire søppeloppsamlere. Disse søppelsamlerne er ikke skapt like, og som sådan betydde det å velge feil å ha ytelsesproblemer i applikasjonen. I Java 8 var standard Garbage Collector den parallelle / gjennomstrømningssamleren. Denne søppelsamleren er erstattet av forgjengeren The Garbage-First Collector (G1). Siden G1-samleren ble designet for å støtte hauger større enn 4 GB effektivt, er det den perfekte søppelkollektoren for både små og store applikasjoner.

API -oppdateringer

I denne nye versjonen av Java Development Kit er det gjort flere oppdateringer til APIene, og vi vil diskutere det mest bemerkelsesverdige.

Den aller første er Java 9 samtidig oppdateringer som har Java.util.samtidig.Flyt og fullført Future. Rettet mot å løse problemet som er baktrykk. Flyt er Javas implementering av Reactive Streams API som i hovedsak tar sikte på å løse mottrykksproblemet. Tilbaketrykk er oppbyggingen av data som oppstår når frekvensen av innkommende forespørsler er større enn behandlingsevnen til applikasjonen. På lang sikt er dette et problem fordi applikasjonen ender opp med en buffer med uprosesserte data. Denne oppdateringen vil bety bedre håndtering av timeouts, forsinkelser og underklasse.

Sikkerhet er en del av Javas kjerneidentitet. Som sådan støtter støtten til 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 er en oppgradering til Core HTTP -protokollene og HTTPURLConnection API som er problematisk, for å si det mildt siden den ble gjort 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. Imidlertid er det ikke uten begrensninger, og dette har ikke gått upåaktet hen. En oppdatering i Java 9 viser tydelig JDK 9 som deler hurtigbufrede koder i mindre deler og forbedrer den generelle ytelsen. JDK 9 bruker spesielle iteratorer for å hoppe over ikke-metodkode; å skille profilert, non-profilert og ikke-metodkode; og forbedre noen benchmarks for utførelsestid.

Fordelene med Java 9

For mange bedriftseiere er det ingen forskjell mellom Java 8 og 9. For utvikleren er det imidlertid en verden av forskjell. Dette er fordelene som Java Se 9 har over forgjengerne.

  • Utviklingshastigheten vil bli betydelig økt takket være systemet med moduler som ikke bare er lettere å administrere og feilsøke, men også gjenbrukbar, noe som betyr at du ikke trenger å skrive hele koden fra bunnen av.
  • Forbedre ressurseffektivitet for applikasjoner fra modularisering og også gjøre ressurstrekk for å være enklere siden utviklere bare vil ta modulene som trengs i stedet for hele JRE.
  • Sanntidsanalyse av kodebiter som mikro-benchmarks som brukes til å se på ytelsen til små kodebiter.

Kilder

http: // openjdk.Java.nett/jeps/251
https: // www.Romexsoft.com/blogg/java-8-vs-java-9/
https: // blogger.Oracle.com/java/funksjoner-i-java-8-og-9
https: // dzone.com/artikler/5-funksjoner-i-java-9-som-vil-endring-hvordan-du-deve

https: // linuxhint.com/eclipse-java-tutorial/