Java8 vs Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​Vylepšení v jazyce Java 9, která potřebujete vědět

Mnoho vývojářů se při vytváření aplikací obrátí na Javu. Jak všichni víme, Java je neuvěřitelně univerzální, snadno použitelná, bezpečná, spolehlivá a hlavně nezávislá na platformě. Java má po celém světě více než 6,5 milionu vývojářů. Jako takový je to perfektní jazyk, protože referenční materiál je také bohatý.

Přesto Java v průběhu let stále roste a vyvíjí se. Vytvořil Sun Microsystems v roce 1995 , Java pokračuje v dokazování své spolehlivosti. Předchozí verze Javy, která byla používána od 18. března 2014, byla Java SE 8. Když byla odhalena, kritici řekli, že se jedná o umělecké dílo, uvolnění proudů změn v API. Nyní je na bloku nové dítě. Čerstvě vyražená Java 9 je konečně tady. Odhaleno 21. září 2017 Očekává se, že Java SE 9 otřesí způsob, jakým věci děláme, a způsob, jakým vývojáři vytvářejí aplikace.







Díky neuvěřitelné hbitosti a univerzálnosti Java 8 vytvořily firmy neuvěřitelná řešení pro odvětví, jako je zdravotnictví, fintech a další hlavní odvětví. Java 9 na druhé straně slibuje, že na tom bude stavět a vývojářům poskytne zcela nové funkce.



Pojďme se tedy podívat, co je nového v Javě 9.



Projekt Jigsaw

Toto je jeden z vrcholů Javy 9. V zásadě se projektu říká skládačka modularizace Javy. Jak se skládačky skládají kousek po kousku a vytvářejí jeden větší obrázek, roste také modularita Javy 9. To znamená, že kód je rozdělen na části (moduly) kvůli úkolům nebo funkcím, které mají být provedeny. Jedná se o obrovský krok vpřed, protože modularizace nejen činí opětovné použití kódu mnohem pohodlnějším, ale také správa a ladění je jednoduché. Z tohoto důvodu jsme zjistili, že vývojáři budou mít vytváření aplikací s jazykem Java 9 jednodušší než u jiných předchozích sestavení.





Další výhodou modularizace je, že vývojáři nyní mohou vytvářet lehké, škálovatelné aplikace. Zvláště s pokračujícím růstem internetu věcí najdeme více takových aplikací napsaných v Javě.

JEP 222: jshell : Java Shell

Java 9 obsahuje nový nástroj REPL (read-eval-print loop). Poté, co byl ve své vývojové fázi pod Projekt správně tato funkce byla konečně uvolněna pro veřejnost. Tato nová funkce je interaktivní nástroj, který se používá k testování výrazů, příkazů a deklarací napsaných v jazyce Java. Hlavním cílem API a nástroje JShell je dát vývojáři možnost vyzkoušet výše uvedené funkce ve stavu shellu. Jedná se především o rychlé kódování a vyšetřování, přičemž výrazy a prohlášení nemusí být uvnitř metody a metody zase nemusí být uvnitř třídy. Tímto způsobem může vývojář rychle analyzovat části kódu a zjistit, zda přinesou požadovaný efekt.



Nástroj jshell bude mít rozhraní příkazového řádku s následujícími funkcemi:

  • Konfigurovatelná předdefinovaná definice a importy.
  • Historie s možnostmi úprav
  • Automatické přidání nezbytných koncových středníků

Vylepšení kompilátoru

Aby se zajistilo rychlejší běh aplikací, Java 9 zařadila novou technologii nazývanou kompilace předem (AoT). Tato technologie, i když ve svých experimentálních fázích, umožňuje, aby třídy Java byly kompilovány do nativního kódu ještě před spuštěním na virtuálních strojích. Možnosti toho jsou nekonečné. Okamžitější používání této technologie však zkracuje dobu spouštění velkých i malých aplikací bez jakéhokoli odrazování od špičkového výkonu.

Zpětně Java 8 používá kompilátory Just-in-time (JIT). Tyto kompilátory jsou rychlé, ale než se zahřejí, zabere to trochu více času. To může být pro menší programy nebo aplikace bezvýznamné, protože není mnoho kódu ke kompilaci. U větších aplikací je však příběh zcela odlišný. Zahřívání, které kompilátor just-in-time potřebuje, znamená, že některé metody nejsou kompilovány, což oslabuje výkon aplikace.

Druhou fází nasazení inteligentní kompilace je zlepšení přenositelnosti a stability nástroje Javac. Vylepšení tohoto nástroje umožňuje, aby byl použit jako výchozí nastavení přímo v JVM (Java Virtual Machine). Kromě toho byl nástroj zobecněn takovým způsobem, který umožňuje vývojářům používat jej i mimo prostředí JDK. Pro vývojáře je to velký problém, protože Java může být použita ve větších projektech, které lze snadno přizpůsobit bez obav o kompatibilitu. Další zásadní aktualizací je zpětná kompatibilita kompilátoru Javac, jehož jedinou funkcí je kompilovat aplikace a programy vytvořené pomocí Java 9 tak, aby fungovaly i na starších verzích Java.

Lepší podpora JavaScriptu

Jelikož JavaScript stále získává na síle a stává se pro mnohé oblíbeným, JDK 9 umožnil vložit JavaScript do aplikací Java. To vše se provádí pomocí Projekt nosorožce jehož hlavním cílem bylo vytvořit vysoce výkonný, ale lehký běh JavaScriptu v Javě. To samozřejmě bylo dodáno, když poskytli JavaScript engine ve verzi JDK verze 8. Nyní ve verzi 9 existuje API analyzátoru, jehož cílem je pořadí syntaxe Nashorn ECMAScript. Co toto API dělá, je umožnit analýzu kódu ECMAScript pomocí rámců na straně serveru a IDE, aniž byste museli spoléhat na interní implementační třídy projektu Nashorn.

G1 jako popelář

Na rozdíl od všeobecného přesvědčení Java nemá jednoho, ale čtyři popeláře. Tyto popelářské kolektory nejsou vytvořeny rovnocenné, a proto výběr špatného znamenal problémy s výkonem v aplikaci. V Javě 8 byl výchozím sběračem odpadků Parallel / Throughput Collector. Tento sběrač odpadků byl nahrazen jeho předchůdcem Sběrač odpadků (G1). Protože byl kolektor G1 navržen tak, aby účinně podporoval hromady větší než 4 GB, je to perfektní odpadkový koš pro malé i velké aplikace.

Aktualizace API

V této nové verzi vývojového kitu Java bylo provedeno několik aktualizací API a my probereme ty nejvýznamnější.

Úplně první jsou aktualizace souběžnosti Java 9, které mají Java.util.concurrent.Flow a CompletableFuture. Zaměřeno na řešení problému, který je protitlak. Flow je implementace Java v jazyce Java Reactive Streams API jehož cílem je v podstatě vyřešit problém se zpětným tlakem. Protitlak je hromadění dat, ke kterému dochází, když je rychlost příchozích požadavků větší než schopnost zpracování aplikace. Z dlouhodobého hlediska je to problém, protože aplikace končí s vyrovnávací pamětí nezpracovaných dat. Tato aktualizace bude znamenat lepší zpracování časových limitů, zpoždění a podtříd.

Zabezpečení je součástí základní identity Javy. Jako taková podpora pro nově schválené HTTP 2.0 RFC je obrovská výhoda. HTTP 2.0 RFC byl postaven na Algoritmus SPDY společnosti Google který již začal přinášet ovoce se zlepšením rychlosti v rozmezí od 11,81% do 47,7% oproti předchozímu HTTP 1.1. Toto klientské API je upgradem na základní protokoly HTTP a HttpURLConnection API, což je přinejmenším problematické, protože bylo vytvořeno ještě před HTTP 1.

Ukládání kódu do mezipaměti bylo vždy strategií používanou k tomu, aby aplikace byly v průběhu let rychlejší a plynulejší. Nicméně to není bez omezení, a to nezůstalo bez povšimnutí. Aktualizace v Javě 9 jasně ukazuje, že JDK 9 rozděluje mezipaměťové kódy na menší části, čímž zlepšuje celkový výkon. JDK 9 používá speciální iterátory k přeskočení kódu jiné než metody; k oddělení profilovaného, ​​neprofilovaného a nemetodového kódu; a vylepšení některých měřítek doby provádění.

Výhody Javy 9

Pro mnoho majitelů firem není rozdíl mezi Javou 8 a 9. Pro vývojáře však existuje svět rozdílu. To jsou výhody, které má Java SE 9 oproti svým předchůdcům.

  • Rychlost vývoje se výrazně zvýší díky systému modulů, které je nejen snazší spravovat a ladit, ale také opakovaně použitelné, což znamená, že nemusíte psát celý kód od nuly.
  • Zvýšení efektivity zdrojů pro aplikace z modularizace a také zjednodušení stahování zdrojů, protože vývojáři budou místo celého JRE používat pouze potřebné moduly.
  • Analýza úryvků kódu v reálném čase, jako je mikro benchmarky slouží k nahlédnutí do výkonu malých kousků kódu.

Prameny

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