1.1. fejezet, A Java története
Beküldte pzoli - 2015, december 25 - 6:47du
A Java története a Wikipedia oldalán és az Oracle oldalán.
- JDK 1.0 (1996: Oak)
- 1.0.2. az első stabil, Java 1-ként nevezett változat
- JDK 1.1 (1997)
-
Fontos változások az előzőkhöz
- AWT eseménykezelő modell kibővítése
- Inner Class
- JavaBeans
- JDBC
- RMI
- reflection
- JDBC
- JIT (Just In Time) compiler on Microsoft Windows platforms
- J2SE 1.2 (1998: Playground)
-
J2SE, J2ME megnevezések bevezetése
- strictfp kulcsszó a megvalósítás független lebegő pontos számítások kezelésére
- SWING api a core-ba integrálva
- A Sun JVM első JIT compiler megjelenése
- Java applet plug-in böngészőkhöz
- Java IDL, CORBA támogatás
- Collections framework (JCF), összetett adatszerkezetek és konkurencia
kezelés- List, Queue, Set, Map, Iterable interfészek
- Vector, LinkedList, ArrayList
- LinkedHashMap, HashMap, TreeMap, SortedMap, NavigableMap
- HashSet, LinkedHashSet, TreeSet, SortedSet
- Deque, BlockingQueue, PriorityQueue, ArrayDeque
- J2SE 1.3 (2000: Kestrel)
-
- HotSpot JVM
- RMI - CORBA tuning
- JavaSound
- JNDI
- Java Platform Debugger Architecture (JPDA)
- Synthetic proxy classes
- J2SE 1.4 (2002: Merlin)
-
- assert kulcsszó
- reguláris kifejezések Perl mintára
- kivétel kezelés bővítése (eredeti, lower-level kivétel beágyazása)
- IPv6 támogatása
- non-blocking IO (NIO)
- logging API
- image I/O API (pl.: JPEG,PNG)
- XML parszolás, XSL transzformáció (JAXP)
- Biztonsági és titkosítási kiterjesztések (JCE, JSSE, JAAS)
- Java Web Start (JAWS) applet-ek helyett
- Preferences API
- J2SE 5.0 (2004: Tiger)
-
J2SE 5.0 megnevezések bevezetése
- Generikusok fordítási időben biztosított tipus biztonság ( pl.: List<String> )
- Metadata, más néven Annotation
- Autoboxing/unboxing, alap típusok automatikus konvertálása alap típusokat csomagoló objektumokba és vissza ( pl.: int - Integer )
- Enumerations: típus biztonság felsorolásnál ( pl.: enum Day.MONDAY, Day.TUESDAY, stb.)
- Varargs: az utolsó paraméter lehet változó számú ( pl.: void drawtext(String... lines) )
- Kibővített for each ciklus: minden tömb és Iterable interfészt implementáló osztályokra, mint a Collection osztályok
- Java Memória Modell változtatások: korábban alkalmazott modell letisztultabbá vált a szálak kommunikációjánál
- Statikus import: ( pl.: import static java.lang.Math.*; y = PI * x)
- automatikus stub generálása RMI objektumokra
- Swing: új sminkelhető külső (synth)
- Concurrency segédletek a java.util.concurrent csomagban
- Scanner osztály a különböző input streamekre és bufferekre
- 64 bites processzorok támogatása ( pl.: Core 2 Duo és magasebb )
- Java SE 6 (2006: Mustang)
-
Java SE 6 megnevezések bevezetése
- Script nyelvek használata ( Mozilla JavaScript Rhino )
- Drasztikus gyorsítása a központi platformnak és a Swing-nek
- Web Service támogatása a JAX-WS-en keresztül
- JDBC 4 támogatás
- Java Compiler API (programozott fordítás)
- Frissítés JAXB 2.0-ra, StAX parser integrálása
- pluggable annotations
- sok GUI hatékonyság növelő megoldás, mint pl. a SwingWorker integrációja, táblázatok sorba rendezése és szűrése, és double-buffering (megszüntette a szürke-terület effektust).
- JVM hatékonyság növelés: a szinkronizáció és a fordítás gyorsabb és hatékonyabb lett, új algoritmusok a meglévő GC (garbage collection) algoritmusokhoz, alkalmazás indítás gyorsítása
Javítások és új funkciók 2007 májusától 2013 október közepéig
- u4 (2008.01.14): HotSpot VM 10
- u7 (1.6.0.7): utolsó támogatott verzió a Win98 alapú
operációs rendszerekhez - u10 (2008.10.15): HotSpot VM 11
- Java Deployment Toolkit: közzétételt segítő JavaScript funkciók applet és Java Web Start alkalmazásokhoz
- Java Kernel
- frissítés kezelő
- Pack200 támogatás
- Java Quick Starter: gyors programindítás
- Java2D hatékonyság növelés Windows Direct3D és hardver gyorsítás
- Nimbus Swing kinézet, synth-re alapuló sminkeléssel
- Java Plug-in-ek új generációja: appletek külön processzben futnak, és a Web Start alkalmazások támogatása
- u12 (2008.12.12.): 64 bites böngészőkbe 64 bites Java Plug-in-ek támogatása, Windows Server 2008 támogatása, grafikus teljesítmény növekedés, JavaFX alkalmazások
- u13 (2009.03.24.): megváltozik az LDAP-ban tárolt Java objektumok JNDI-n keresztül történő elérése, JMX változás (createMBeanunregisterMBean)
- u14 (2009.05.28.):
- HotSpot VM 14, JIT fordító teljesítmény növekedés, 64 bites gépeken tömörített mutatók, G1 (Garbage First) csökkentett futást felfüggesztő szemétgyűjtő
- -XX:+DoEscapeAnalysis: HotSpot JIT fordítóba escape analízis a lokális objektumok tárolási helyének meghatározásához (heap helyett a stack használata)
- u18 (2010.01.13.):
- Hotspot VM 16
- operációs rendszerek támogatása: Ubuntu 8.04 LTS, Win7, RHEL 5.3
- Firefox 3.6 támogatása
- VisualVM 1.2
- Java DB frissítés
- u21 (2010.07.07.): Hotspot VM 17, Customized Loading
Progress Indicators támogatása, VisualVM 1.2.2- operációs rendszerek támogatása: RHEL 5.4 és 5.5, Oracle Enterprise Linux 4.8, 5.4, 5.5
- Chrome 4 támogatása
- u23 (2010.12.08.): Hotspot VM 19, jobbról balra író nyelvek jobb támogatása
- u24 (2011.02.15.): Java DB frissítés
- u25 (2011.03.21.):
- Hotspot VM 20
- IE-9, Firefox 4, Chrome 10 támogatás
- hatékonyabb BigDecimal
- Server VM, Client VM: -server és -XX:+TieredCompilation fordítási opció
- az utolsó Windows Vista SP1-et támogató verzió
- u27 (2011.08.16.): Firefox 5 tanusitvány
- u33 (2012.06.12.): hatékonyabb VM configurációs file
betöltés
- Java SE 7 (2011: Dolphin)
-
- JVM támogatás a dinamikus nyelvek kezeléséhez
(invokedynamic, JSR-292), Multi Language Virtual Machine - 64 bites tömörített mutatók használata
(-XX:+UseCompressedOops) - Coin projekt:
- String kezelés switch elágazásokban
- automatikus resource kezelés try..catch kezelésben
- generikusok kezelésének egyszerűsítése (diamond operator <>)
- egyszerűsített varargs metódusok
- binaris szám kezelés (pl: int anInt1 = 0b10100001010001011010000101000101)
- aláhúzások szám kifejezésekben (pl.: long creditCardNumber = 1234_5678_9012_3456L)
- kivételeknél több kivétel osztály egyszeri kezelése
- Concurrency segédlet (JSR166)
- új file I/O (meta-adat és link kezelés) java.nio.file,
java.nio.file.attribute - Timsort tömbök rendezése merge sort helyett
- elliptic curve cryptography algoritmus függvénykönyvtár
szinten - XRender pipe-line Java2D-hez, modern GPU-k támogatásával
- 6u10-ben bevezetett nem támogatott grafikus fejlesztések
hivatalossá tétele - új hálózati protokollok SCTP és Sockets Direct Protocol
- Upstream frissítés XML és Unicode-hoz
- JVM támogatás a dinamikus nyelvek kezeléséhez
- Java2SE 8 (2014. 03. 18.)
-
- Nashorn (Javascript)
- Lambda függvények
- Többszörös öröklődés az interfészeken és az alapértelmezett
metódusokon keresztül
default public void
exampleDefaultMethod() - Unsigned Integer
- Date and Time API
- Statikusan csatolt JNI könyvtárak
- @Repeatable meta-annotatáció
- Annotation on Java Types
- Közvetlen JavaFX JAR futtatás (javafxpackager, javafx-maven-plugin)
- Eltávolított permanent generation (osztályok és objektumok
tárolása kettéválasztva) - Windows XP-n nem támogatott a telepítő, zip fájlból
kicsomagolva használható (update 11-től) - u11 (2014. 07. 15.)
- Java Dependency Analysis Tool (jdeps)
- JAR file attribute – Entry-Point;
- JAXP processing limit property – maxElementDepth
- Java SE 9 (2017)
-
- Moduláris felépítés (Project Jigsaw)
Skálázható platform
- Monolitikus rendszerről modulárisra váltva kisebb számítási igényű rendszerek fejleszthetők, kevesebb memória igény, gyorsabb indulás, jobb performancia.
- Biztonságosabb a csomagolás, mert a platformon jobban konfigurálható melyik modulból mit exportálunk, és milyen más modulokra van szükségünk (belső API-k elrejtése).
- Könnyebben fejleszthető a platform, modulonként különálló fejlesztő csoportok, egyszerűbb verziókezeléssel - JShell
- GraalVM
- Moduláris felépítés (Project Jigsaw)
- Java SE 10 (2018)
-
- Fél évenkénti verzió kiadás bevezetése (a páratlan sorszámú a major verzió)
- Memória kezelés hatékonyabb GC-vel
- önmagát fordító JVM (fordítása GraalVM)
- A hozzászóláshoz be kell jelentkezni