Java8 vs Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​Förbättringar i Java 9 som du behöver veta

Många utvecklare vänder sig till Java för att skapa applikationer. Som vi alla vet är Java otroligt mångsidig, enkel att använda, säker, pålitlig och framför allt plattformsoberoende. Java har fler än 6,5 miljoner utvecklare globalt. Som sådan är det det perfekta språket att använda eftersom referensmaterial också är rikligt.

Ändå har Java fortsatt att växa och utvecklas under åren. Skapad av Sun Microsystems 1995 , Java har fortsatt att bevisa sin tillförlitlighet. Den tidigare versionen av Java som har använts sedan den 18 mars 2014 var Java SE 8. När den presenterades sa kritiker att det var ett konstverk, en utgåva av flöden av ändringar i API: er. Nu finns det en ny unge på blocket. Nyligen präglad Java 9 är äntligen här. Avtäcktes den 21 september 2017 , Java SE 9 förväntas skaka om hur vi gör saker och hur utvecklare skapar applikationer.







På grund av Java 8: s otroliga smidighet och mångsidighet skapade företag otroliga lösningar för industrier som vård, fintech och andra stora sektorer. Java 9, å andra sidan, lovar att bygga vidare på det och leverera helt nya funktioner till utvecklarna.



Så, låt oss ta en titt på vad som är nytt i Java 9.



Projekt Jigsaw

Detta är en av höjdpunkterna i Java 9. I grund och botten är projektpussel namnet som ges modulering av Java. När pusselbitar sammanföres bit för bit för att skapa en större bild, så gör även Java 9. Modularitet. Detta innebär att koden delas upp i delar (moduler) på grund av de uppgifter eller funktioner som ska utföras. Detta är ett stort steg framåt eftersom modulering inte bara gör återanvändning av kod mycket bekvämare, utan också hantering och felsökning är enkelt. På grund av detta upptäcker vi att utvecklare kommer att ha lättare att skapa applikationer med Java 9 än med andra tidigare versioner.





En annan fördel med modulering är att utvecklare nu kan skapa lätta, skalbara applikationer. Speciellt när Internet of Things fortsätter att växa hittar vi fler sådana appar skrivna i Java.

JEP 222: jshell : Java -skalet

Java 9 har det nya verktyget read-eval-print loop (REPL). Efter att ha varit i sin utvecklingsfas under Projekt rätt denna funktion har äntligen släppts för allmänheten. Den här nya funktionen är ett interaktivt verktyg som används för att testa uttryck, uttalanden och deklarationer skrivna i Java. Huvudmålet med JShell API och verktyg är att ge utvecklaren en chans att testa funktionerna som nämns ovan i skalstatus. Detta är främst snabb kodning och undersökning, där uttrycken och uttalandena inte behöver vara inuti en metod och metoder i sin tur inte behöver vara i en klass. På så sätt kan en utvecklare snabbt analysera bitar av kod och se om de ger den önskade effekten.



Jshell -verktyget kommer att ha ett kommandoradsgränssnitt med följande funktioner:

  • Konfigurerbar fördefinierad definition och import.
  • En historik med redigeringsmöjligheter
  • Automatisk tillsats av nödvändiga terminal semikolon

Kompilatorförbättringar

För att säkerställa att applikationerna körs snabbare har Java 9 anlitat en ny teknik som kallas AoT-kompilering i förväg. Denna teknik, om än i sina experimentella faser, gör det möjligt för Java -klasser att kompileras till inbyggd kod redan innan den lanseras i de virtuella datorerna. Möjligheterna till detta är oändliga. Den mer omedelbara användningen av denna teknik förbättrar dock starttiden för stora och små appar utan att avskräcka toppresultat.

I efterhand använder Java 8 just-in-time (JIT) kompilatorer. Dessa kompilatorer är snabba men tar lite mer tid innan de värms upp. Det kan vara obetydligt för mindre program eller appar eftersom det inte finns mycket kod att kompilera. Men för de större apparna är berättelsen en helt annan. Uppvärmningen som en just-in-time-kompilator behöver, innebär att vissa metoder inte sammanställs, vilket försvagar appens prestanda.

Den andra fasen i distributionen av smart kompilering är förbättringen av Javac -verktygets bärbarhet och stabilitet. Förbättring av detta verktyg gör att det kan användas direkt i JVM (Java Virtual Machine) som standardinställning. Bortsett från det har verktyget generaliserats på ett sådant sätt att utvecklare kan använda det även utanför JDK -miljön. För utvecklare är detta en stor sak eftersom Java kan användas i större projekt som enkelt kan rymmas utan att oroa sig för kompatibilitet. En annan viktig uppdatering är den bakåtkompatibla Javac -kompilatorn vars enda funktion är att kompilera appar och program som skapats med Java 9 för att även köras på äldre Java -versioner.

Bättre JavaScript -stöd

Eftersom JavaScript fortsätter att ta fart och bli en favorit för många har JDK 9 gjort det möjligt att bädda in JavaScript i Java -appar. Allt detta görs med hjälp av Projekt noshörning vars främsta mål var att skapa högpresterande men ändå lätt JavaScript -körningstid i Java. Detta levererades naturligtvis när de levererade en JavaScript -motor i JDK -version 8. Nu i version 9 finns det ett parser -API vars mål är Nashorns ECMAScript -syntaxordning. Vad detta API gör är att möjliggöra analys av ECMAScript-kod av serversidor och IDE utan att behöva förlita sig på de interna implementeringsklasserna för Project Nashorn.

G1 som sopsamlare

I motsats till vad många tror har Java inte en utan fyra sopor. Dessa sopsamlare är inte skapade lika och att välja fel innebar att ha prestandaproblem i applikationen. I Java 8 var standard sophämtaren Parallel / Throughput Collector. Denna sopsamlare har ersatts av sin föregångare Garbage-first collector (G1). Eftersom G1-kollektorn var konstruerad för att effektivt stödja högar som är större än 4 GB, är den den perfekta sopsamlaren för både små och stora applikationer.

API -uppdateringar

I den här nya versionen av Java -utvecklingssatsen har flera uppdateringar gjorts till API: erna och vi kommer att diskutera de mest anmärkningsvärda.

Den allra första är Java 9 -samtidighetsuppdateringar som har Java.util.concurrent.Flow och CompletableFuture. Syftar till att lösa problemet som är mottryck. Flow är Java: s implementering av Reactive Streams API som i huvudsak syftar till att lösa mottrycksproblemet. Baktryck är uppbyggnaden av data som uppstår när frekvensen av inkommande förfrågningar är större än programmets bearbetningskapacitet. På sikt är detta ett problem eftersom applikationen hamnar med en buffert med obearbetade data. Denna uppdatering kommer att innebära bättre hantering av timeout, förseningar och underklassning.

Säkerhet är en del av Java: s kärnidentitet. Som sådan, stöd för den nyligen godkända HTTP 2.0 RFC är ett stort plus. HTTP 2.0 RFC byggdes ovanpå Googles SPDY -algoritm som redan har börjat bära frukt med hastighetsförbättringar från 11,81% till 47,7% från den tidigare HTTP 1.1. Detta klient -API är en uppgradering av kärnans HTTP -protokoll och HttpURLConnection API, vilket är minst sagt problematiskt sedan det gjordes redan före HTTP 1.

Kodcachning har alltid varit en strategi som används för att göra applikationer snabbare och smidigare genom åren. Det är dock inte utan sina begränsningar, och detta har inte gått obemärkt förbi. En uppdatering i Java 9 visar tydligt JDK 9 som delar upp cachade koder i mindre delar vilket förbättrar den totala prestandan. JDK 9 använder speciella iteratorer för att hoppa över icke-metodkod; att separera profilerad, oprofilerad och icke-metodisk kod; och förbättra vissa riktmärken för körningstid.

Fördelar med Java 9

För många företagare är det ingen skillnad mellan Java 8 och 9. Men för utvecklaren finns det en värld av skillnad. Det här är fördelarna som Java SE 9 har gentemot sina föregångare.

  • Utvecklingshastigheten kommer att ökas avsevärt tack vare systemet med moduler som inte bara är lättare att hantera och felsöka, utan också återanvändbara vilket innebär att du inte behöver skriva hela koden från grunden.
  • Förbättra resurseffektiviteten för applikationer från modularisering och göra resursdragningen enklare eftersom utvecklare bara tar de moduler som behövs istället för hela JRE.
  • Realtidsanalys av kodavsnitt som t.ex. mikro riktmärken används för att undersöka prestanda för små bitar av kod.

Källor

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 -handledning