Java verziótörténet

From Wikipedia, the free encyclopedia

Remove ads

A Java nyelv számos változáson ment keresztül a JDK 1.0 kiadása óta. Számos osztály és csomag került hozzáadásra a sztenderd könyvtárakhoz. A J2SE 1.4 óta a Java nyelv evolúcióját a Java Community Process (JCP) irányítja, amely Java Specification Requests (JSR-eket) használ a Java platform-on a különböző bővítések és változások javaslatainak kidolgozásához. A nyelvet Java Language Specification (Java nyelvi specifikáció – JLS) rögzíti, a változásokat a JLS-en a JSR 901 keresztül menedzselik.

Remove ads

JDK Alpha és Beta

1995-ben adták ki. Az Alpha és Beta Java nyilvános kiadásainak meglehetősen instabil API-jai és ABIjai voltak. A hozzá kiadott böngészőt WebRunner-nek hívták.

JDK 1.0

1996. január 23-án adták ki Oak kódneven. Ez volt az első kiadás a Sun-tól.[1][2] Az első stabil verzió a JDK 1.0.2. volt, amit Java 1-nek hívtak.[2]

JDK 1.1

1997. február 19-én adták ki. Főbb bővítések a következők voltak:[3]

  • az AWT esemény modelljének átfogó átdolgozása
  • beágyazott osztályokat hozzáadták a nyelvhez
  • JavaBeans
  • JDBC
  • RMI
  • reflection, ami csak a betekintést támogatta, a módosítás futás időben nem volt lehetséges.
  • JIT fordító a Microsoft Windows platformokon, melyet a Symantec készített a JavaSoft-nak

J2SE 1.2

1998. december 8-án adták ki Playground (játszótér) kódnéven. Ez és az ezt követő kiadásokat egészen a J2SE 5.0-ig átnevezték visszamenőlegesen Java 2-re. Ezután "J2SE" verziónevet (Java 2 Platform, Standard Edition) használták JDK helyett, hogy megkülönböztethető legyen a J2EE (Java 2 Platform, Enterprise Edition)-től és J2ME (Java 2 Platform, Micro Edition)-től. Ezzel a nagyon jelentős Java kiadással a Java platform megháromszorozta a méretét: 1520 osztály lett 59 csomagban. Főbb bővítései a következők voltak:[4]

  • strictfp kulcsszó bevezetése
  • a Swing grafikus API hozzáadása és integrálásása a központi osztálykönyvtárba
  • Sun JVM-et először egészítették ki JIT compiler-re
  • Java plug-in
  • Java IDL, egy IDL implementáció a CORBA-bával való együttműködéshez
  • Java Collections Keretrendszer
Remove ads

J2SE 1.3

2000. május 8-án adták ki Kestrel kódnéven.

A legfontosabb változások a következők voltak:[5][6]

Remove ads

J2SE 1.4

2002. február 6-án adták ki Merlin kódnéven.

Ez volt az első Java platform kiadás, melyet a Java Community Process keretében fejlesztettek ki (JSR 59). Főbb változások a következők voltak:[7][8]

Nyelvi változások
  • assert kulcsszó (A JSR 41-ben specifikálták.)
Könyvtárak továbbfejlesztése
  • reguláris kifejezések – a Perl reguláris kifejezések szolgáltak modellként
  • kivétel láncolás – lehetővé teszi egy kivétel számára, hogy becsomagolja az eredeti alsóbb szintű kivételt
  • IPv6 támogatás
  • nem blokkoló IO (NIO) (Új Input/Output) (A JSR 51-ban specifikálták.)
  • naplózási API (A JSR 47-ben specifikálták.)
  • image I/O API olyan formátumú képek írásához és olvasásához mint pl. JPEG és PNG
  • beépített XML értelmező (parser) és XSLT feldolgozó (JAXP) (A JSR 5-ben és a JSR 63-ban specifikálták.)
  • integrált biztonsági és kódolási kiterjesztések (JCE, JSSE, JAAS)
  • Java Web Start beemelése (Java Web Start-ot először 2001 márciusában adták ki a J2SE 1.3-hoz) (A JSR 56-ban specifikálták.)
  • Preferences API (java.util.prefs)

Az 1.4-es verzióhoz a támogatás és biztonsági frissítések egészen 2008 októberéig voltak elérhetők.[9]

Remove ads

J2SE 5.0

2004. szeptember 30-án adták ki Tiger kódnéven. Eredetileg 1.5-ös száma volt, amelyet még mindig használnak belső verziószámként.[10] Ezt a verziót a JSR 176 keretein belül fejlesztették ki.

J2SE 5.0 2008. április 8-án elérkezett a nyilvános frissítések végének periódusához, és a frissítések a továbbiakban már nem elérhetők 2009. november 3-adika óta. Az Oracle ügyfelei számára azonban frissítések továbbra is elérhetők 2014 májusáig.[11]

A Tiger számos jelentős új nyelvi szintű újdonságot hozott:[12][13]

  • Generikus típusok Java-ban: fordítás idejű (statikus) típus biztosságot nyújt a collection-ökhoz és szükségtelenné tette a legtöbb típuscast-olást (típus konverzió).(Specifikálva a JSR 14-ban.)
  • Metaadatok: annotációknak is hívják; lehetővé teszi a nyelvi konstrukciók (osztályok és metódusok) címkézését, melyek feldolgozhatók metaadatot kezelni képes segédprogramok segítségével. (Specifikálva a JSR 175-ben.)
  • Autoboxing/unboxing (automatikus típus konverzió): Automatikus konverziók a primitív típusok (pl. int) és primitív csomagoló osztályok között (mint pl. Integer). (Specifikálva a JSR 201-ben.)
  • Enumeration-ök: Az enum kulcsszó segítségével képezhető típusbiztos rendezett értéklista (pl. Day.MONDAY, Day.TUESDAY, stb.) Előzőleg ezt csak nem típusbiztos konstans integerekkel vagy kézzel készített osztályok segítségével (típusbiztos enum tervezési mintával) lehetett megoldani. (Specifikálva a JSR 201-ben.)
  • Változó számú paraméter metódusban(Varargs): A metódus legutolsó paraméterét mostantól lehet úgy deklarálni, hogy a típus neve és utána három pont (pl. void drawtext(String... lines)). A hívó kódban az adott típus bármilyen számosságban használható, mivel ezek egy tömbbe lesznek elhelyezve, és úgy lesznek átadva a metódusnak vagy alternatív módon a hívó kód is átadhatja az adott típus egy tömbjét.
  • Bővített for each ciklus: A for ciklus szintaxisát kibővítették egy speciális szintaxissal, hogy képes legyen végigmenni egy tömbnek vagy bármely Iterable típusnak minden tagján, mint pl. amilyenek a sztenderd Collection osztályok. (Specifikálva a JSR 201-ben.)
  • Kijavították az előzőleg sérült Java memóriamodell szemantikáját, amely definiálja a szálak memórián keresztüli kölcsönhatásba lépését.
  • Statikus importok

A sztenderd könyvtárak is fejlődésen mentek keresztül:

Java 5 volt az utolsó Java kiadás, amely hivatalosan is támogatta a Microsoft Windows 9x vonalat (Windows 95, Windows 98, Windows ME),[15] míg a Windows Vista volt a legújabb Windows verzió, amely J2SE 5-t támogatta, mielőtt a Java 5 elérte az életciklusa végét 2009 októberében.[9]

Az Apple Mac OS X 10.5 (Leopard)-ra a Java 5 van telepítve alapértelmezett Java verzióként. A Java 6-ot is lehet telepíteni és alapértelmezettként használhatónak beállítani a 64 bites (Core 2 Duo és későbbiek) processzorral ellátott gépeken.[16] A Java 6 szintén támogatott a 32 bites Mac OS X 10.6 (Snow Leopard) gépeken.

Remove ads

Java SE 6

2006. december 11-én adták ki Mustang kódnéven. Ettől a verziótól kezdve a Sun "J2SE" helyett a Java SE-t kezdte el használni és a verziószámból kihagyta a ".0"-t,[17] ám a fejlesztőknek továbbra is a belső sorszámozás szerinti verziószámmal, az 1.6.0-tal szerepeltette.[18] Ezt a verziót a JSR 270 alatt fejlesztették ki.

A fejlesztési fázisban az új kiadások kiegészítéseket és javításokat is egyaránt tartalmaztak, kibocsájtásuk nagyjából hetente történt. A béta verzió kiadása 2006 júniusában történt meg, majd 2006. december 11-ei végső verzió megjelenésével zárult a tesztelési folyamat.

Fő változások ebben a verzióban:[19][20]

  • Megszüntették a régebbi Win9x-es verziók támogatását, nem hivatalosan az Java 6 Update 7 volt a Java utolsó kiadása, amely bizonyíthatóan működött ezeken a Windows verziókon.[forrás?] Hivatalosan az Update 10-zel zárult a támogatás.
  • Scriptnyelvek támogatása (JSR 223): általános API a script nyelvek szoros integrációjához, és beépített Mozilla JavaScript Rhino integráció
  • Drasztikus teljesítmény növekedés az alap platformon[21][22] és a Swing-ben is.
  • Továbbfejlesztett webszolgáltatás támogatás a JAX-WS-n keresztül (JSR 224)
  • JDBC 4.0 támogatás (JSR 221).
  • Java Compiler API (JSR 199): Java programok számára a megfelelő fordító programból való kiválasztását és meghívását lehetővé tevő API.
  • JAXB frissítése 2.0-ra: beleértve a StAX parser integrációját is.
  • Pluggable annotatáció támogatás (JSR 269)[23]
  • Sok GUI továbbfejlesztés, mint pl. SwingWorker integrációja az API-ban, tábla rendezés és szűrés, és valódi Swing dupla pufferelés (szürke területek hatás megszüntetése)
  • JVM továbbfejlesztések, azaz: szinkronizáció és fordítóprogram hatékonyság optimalizációk, új algoritmusok és frissítések a létező szemétgyűjtési algoritmusokon és hatékonyság javítás alkalmazásindításkor.[24]

A Java 6 elérte a támogatott életciklusának végét 2013 februárjában, amikor is minden frissítést beleértve a biztonsági frissítéseket is terv szerint leállitanak.[25][26] Oracle kiadott még biztonsági sebezhetőségre vonatkozó frissítést 2013 márciusában.[27]

Java 6 frissítések

A Java 6 kiadása után a Sun, majd később az Oracle kiadott számos frissítést, melyek nem változtattak meg semmilyen nyilvános API-t, fokozták a végfelhasználói élményét vagy hibát javítottak ki.[28]


A szócikk egy része még lefordítandó. Segíts te is a fordításban!

További információk Kiadás, Kiadás dátuma ...
Remove ads

Java SE 7

A Java 7-et, amely jelentős frissítés volt, a 2011. július 7-én[108] adták ki Dolphin[109] kódnéven, és tették elérhetővé a fejlesztők számára 2011. július 28-án.[110] A fejlesztési periódust 13 mérföldkőbe szervezték és 2011. június 6-án az utolsó 13. mérföldkőt is befejezték.[111][112] Átlagban 8 build-et (általánosságban ideértve bővítéseket és hibajavítások is) adtak ki mérföldkövenként. A funkció lista az OpenJDK 7 projektben tartalmazza ezen változások nagy részét.

A következő bővítések jelentek meg a Java 7-ben:[113]

  • JVM támogatás a dinamikus nyelvekhez az új invokedynamic bájtkód utasítással a JSR-292 alatt,[114] majd nem sokkal ezután elkészültek prototípus munkákkal a több nyelvű virtuális gépen is.
  • Tömörített 64-bit mutatók[115] (elérhetők a Java 6-ban is a -XX:+UseCompressedOops-val)[116]
  • Apróbb nyelvi változások (csokorba gyűjtve a Coin nevű projekt alatt):[117]
    • Stringek a switch[118]
    • Automatikus erőforrás menedzsment a try-utasításban[119]
    • Továbbfejlesztett type inference a generikus példányok létrehozásához, azaz rombusz operátor <>[120]
    • egyszerűsített változó argumentumszámú (varargs) metódus deklaráció[121]
    • Bináris egész literálok[122]
    • Alulvonások megengedése a numerikus literálokban[123]
    • Több kivétel típus elkapása és újbóli kivételek dobása továbbfejlesztett típus ellenőrzéssel[124]
  • Párhuzamos segédosztályok a JSR 166 alatt[125]
  • Új fájl I/O könyvtár a platform függetlenség bővítéséhez és támogatás a metaadatokhoz és szimbolikus linkekhez. Az új csomagok a java.nio.file és a java.nio.file.attribute alatt.[126][127]
  • Timsort használata a tömbök sorba rendezéséhez a merge sort helyett
  • könyvtár-szintű támogatás az elliptikus görbén alapuló kriptografikus algoritmushoz
  • XRender csővezeték a Java 2D-hez, amely így javít a feature specifikus kezelésen a modern GPUkon
  • Új platform APIk azokhoz a grafikus funkciókhoz, melyek eredetileg a 6u10-ben voltak implementálva, mint támogatott APIk[128]
  • Kibővített könyvtár szintű támogatás az új hálózati protokollokhoz, beleértve a SCTP-t és Sockets Direct Protocol-t
  • Upstream frissítések az XML-hez és az Unicode-hoz

A Lambda (lambda függvények Java implementációja), Jigsaw (modulok Java implementációja), és a Coin projekt egy részét kihagyták a Java 7-ből. A Java 8 ezekkel hátralévő funkciókkal együtt fog kijönni 2014 tavaszán.[129]

Java 7 frissítések

Az Oracle negyedévenként tervezi a frissítések kiadását a Java 7-es család esetén.[130]

További információk Kiadás, Kiadás dátuma ...
Remove ads

Java SE 8

Java 8-at (kódnév: Spider) 2014 márciusára várják,[182][183] és tartalmazni fog olyan funkciókat, melyeket a Java 7-be terveztek megjelentetni, de bevezetésüket később elhalasztották.

A fejlesztési build-eket[184] heti rendszerességgel publikálják, ezeknek csak az új funkciók kiértékelésénél/megismerésekor van szerepük.

Java 8 frissítések

További információk Kiadás, Dátum ...
Remove ads

Java SE 9

A JavaOne 2011-en az Oracle nyilvánosságra hozta azokat a funkciókat, melyek a remények szerint benne lesznek a 2016-ban[220] kiadandó Java 9-ben. Ezek többek közt: jobb támogatás a sok gigabájtos heap-eknek, jobb natív kód integráció és önmagát hangolni tudó JVM.[221]

Java 9 frissítések

További információk Kiadás, Kiadás dátuma ...
Remove ads

Java SE 10

Egyes vélekedések szerint el fogják távolítani végleg a primitív adattípusokat és tovább haladnak a 64 bitesen címezhető tömbök felé, hogy támogatni tudják a nagy adathalmazokat.[225]

Java 10 frissítések

További információk Kiadás, Kiadás dátuma ...

Java SE 11

A 2018. szeptember 25-én kiadták a JDK 11-et [231] és a verzió jelenleg nyitott a hibajavításokra. A Java 11 nagy számú új funkciót tartalmaz, mint például:

  • JEP 309: dinamikus classfájl konstansok[232]
  • JEP 318: epsilon: egy No-Op szemétgyüjtő[233]
  • JEP 323: helyi változó szintaxis a Lambda parameterekhez[234]
  • JEP 331: alacsony-túlterhelési heap profiling[235]
  • JEP 321: új HTTP kliens (Standard)[236]
  • JEP 332: Transport Layer Security (TLS) 1.3[237]
  • JEP 328: felvételkészítés röptében[238]
  • JavaFX, Java EE és CORBA modulokat eltávolították a JDK-ból.[239]

… többek között.[240]

Java 11 frissítések

További információk Kiadás, Kiadás dátuma ...

Implementációk

Az OpenJDK egy szabad és nyílt forráskódú implementációja a Java Platform, Standard Edition (Java SE)-nek.

Az OpenJDK előtt számos Szabad forráskódú Java implementáció készült, számos cég és csoportosulás (pl. Apache Harmony) által. Az IBM szintén kiadott néhány JVM Java implementációt,[274] a Red Hat pedig az IcedTea projekt keretében adott ki egy build-et és járult hozzá egy integrációs projekttel az OpenJDK-hoz.

Jegyzetek

További információk

Fordítás

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads