1 / 17

Java

Java. A nyelv története, jellemzői A Java platform. A Java programozási nyelvet James Gosling és más mérnökök hozták létre a Sun Microsystems berkein belül. A fejlesztés 1991 -ben kezdődött a Green Project részeként.

uriel-oneil
Télécharger la présentation

Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java A nyelv története, jellemzői A Java platform

  2. A Java programozási nyelvet James Gosling és más mérnökök hozták létre a Sun Microsystems berkein belül. A fejlesztés 1991-ben kezdődött a Green Project részeként. Olyan szg-es mini nyelvet terveztek, amely kommunikációs eszközök programozására alkalmas. (Mint pl. egy kábel TV kapcsoló doboza.) Mivel az ilyen eszközök nem túl gyorsak, memóriájuk is szűkös, a nyelvnek nagyon kicsinek, a lefordított kódnak pedig roppant hatékonynak kellett lennie. 2

  3. Közrejátszott még egy fontos szempont: Mivel valószínűsíthető volt, hogy a különböző gyártók majd különböző típusú processzorokat fognak választani, ezért a nyelvet általánosra kellett megalkotni. Nem volt szabad azt egy megadott architektúrára szűkíteni. 3

  4. Hivatalosan 1995. május 23-án jelentették be, az első verziót novemberben adták ki. Eredetileg a C++ utódjának szánták. Az eredeti neve Oak volt (angolul tölgyfát jelent, állítólag a James Gosling irodája előtt álló fa ihlette), azonban ez már egy bejegyzett név. Miközben a néven töprengtek, nagy élvezettel kortyolgatták kávéjukat. E kávé a Java nevet viselte, utalva a származási helyére. Jáva Indonézia egyik szigete, melyen az ország fővárosa, Jakarta is található. Ez Indonézia legnépesebb szigete, egyben a világ legsűrűbben lakott területeinek egyike. A Föld tizenharmadik legnagyobb szigete. Hol található Java szigete? 4

  5. Verziók • JDK 1.0, 1996. január 23. • JDK 1.1, 1997. február 19. • JDK 1.2, kódneve Playground(más néven Java 2), 1998. december 8. • JDK 1.3, Kestrel, 2000. május 8. • JDK 1.4, Merlin, 2002. február 6. • JDK 5.0, Tiger(korábbi nevén 1.5), 2004. szeptember 30. • JDK 6, Mustang, 2006. december 11. 2009-ben az Oracle fölvásárolta!!! • JDK 7, Dolphin,  2011. július 28. (String-ek engedélyezése switch utasításban, új IO könyvtár) • JDK 8, 2012 vége… Java programok készítéséhez a Java Development Kit (JDK, Java fejlesztői készlet) szükséges!!! 5

  6. A Java első kiadása a Java Developement Kit 1.0 (JDK 1.0, Java fejlesztői csomag) volt. Ez tartalmazta a futtatási környezetet (a virtuális gépet és az osztálykönyvtárakat) és a fejlesztői eszközöket (például a javac fordítót). Később a Sun kiadott egy csomagot Java Runtime Environment (JRE, Java futtatási környezet) néven, ami csak a futtatási környezetet tartalmazta. Az emberekben azonban az első név ragadt meg, ezért szoktak a különböző verziókra a JDK verziója szerint hivatkozni. 6

  7. A Java nyelv jellemzői • Egyszerű (simple) • Objektumorientált (object-oriented) • Elosztott (ditributed) • Robusztus (robust) • Biztonságos (secure) • Architektúra-semleges (architecture neutral) • Hordozható (portable) • Interpretált (interpreted) • Magas teljesítményű (high performance) • Többszálú (multithreaded) • Dinamikus (dynamic) 7

  8. A Java platform A Java platform egy olyan számítógépes környezet (platform) neve, ami képes a Java programozási nyelven írt programok futtatására. Ebben az esetben a platform nem egy konkrét hardvert vagy operáció rendszert jelöl, hanem egy virtuális gépnek nevezett futtató programot és szabványososztálykönyvtárakgyűjtemény-ét, amik egységes működést biztosítanak. 8

  9. ? Ábra.java … Rajzol (zöld kör); … Ábra.class 10011101010111011101011101… Windows Solaris Siemens Samsung Nokia Linux Java nyelvű forrásszöveg(text állomány) Android: Google Inc. Blackberry OS: RIM iOS: Apple Symbian OS: Symbian Alapítvány Windows Phone: Microsoft Java fordító Javac Ábra.java Java bájtkód (bináris állomány, de még nem futtatható!) Java Ábra Java Virtuális Gép + Java osztálykönyvtár gyűjtemény 9

  10. A programozó egy nyelvet megtanulva, egy nyelvet használva tudja a legkülönfélébb programozható eszközöket, (pl. mobilokat, személyi számítógépeket, szervereket) kezelni, anélkül, hogy magukkal ezekkel a különböző hardver eszközökkel, vagy az eszközökön található szoftveres erőforrásokkal, (pl. a futó operációs rendszerekkel: Linux-szal, Windows-zal vagy Solarisszal) foglalkoznia kellene. 10

  11. A Java Runtime Environment Ahhoz, hogy egy Java platformra készült programot futtatni tudjunk, szükségünk van egy Java virtuális gépre, és osztálykönyvtárak gyűjteményére, amiket a program felhasznál. A Sun virtuális gépét, és az ő osztálykönyvtár megvalósításukat a Java Runtime Environment (JRE) tartalmazza. 11

  12. A Java Virtuális Gép A Java platform lelke egy olyan virtuális processzor, ami Java bájtkódú programokat képes futtatni. Ez a bájtkód ugyanaz marad, függetlenül attól, hogy milyen hardveren vagy operációs rendszeren fut. A Java platform ehhez egy értelmezőt használ, a Java virtuális gépet (Java Virtual Machine, JVM), ami futási időben lefordítja a Java bájtkódú utasításokat a helyi gép natív kódú utasításaira. Így ugyanazt a programot bármilyen platformon lehet futtatni, amihez van virtuális gép. 12

  13. Az 1.2-es verzió óta a Sun JVM megvalósítása just-in-time (JIT) fordítót is tartalmaz. Ebben ahelyett, hogy egyenként értelmeznénk a bájtkódú utasításokat, egyszerre lefordítjuk a bájtkódban lévő programot a megfelelő natív kódú programmá akkor, amikor azt a virtuális gép betölti. Ezzel sokkal gyorsabb lesz a futtatás, csak a betöltés fog egy kicsit tovább tartani. Így a JIT fordító optimalizálhatja is a kódot a program aktuális viselkedésének megfelelően (ami például nem tehető meg egy előre lefordított programmal). 13

  14. Ez azonban nem jelenti azt, hogy ténylegesen le lehet fordítani egy Java kódot natív kódra (hogy kihasználjuk a sebességét). Léteznek olyan fordítók, amik megpróbálkoznak ezzel, de nem minden Java osztálykönyvtárnak létezik gépi kódú megfelelője. (Vegyük például a reflexiót, amivel kikereshetjük az éppen betöltött osztályok utasításait. Ezt nem lehet tökéletesen megoldani gépi kóddal.) 14

  15. Az osztálykönyvtárak A legtöbb operációs rendszerben sok újrafelhasználható kód áll rendelkezésre a programozók munkájának megkönnyítésére. Ezek általában dinamikusan betölthető könyvtárak, amiket az alkalmazások futási időben tudnak meghívni. Mivel a Java platform független minden operációs rendszertől, ezért nem támaszkodhat egyik létező könyvtárgyűjteményre sem. Ehelyett a Java platform olyan széleskörű osztálykönyvtár gyűjteményt biztosít, ami tartalmazza a legtöbb, a modern operációs rendszerekben megtalálható funkciót. 15

  16. A Java osztálykönyvtárak három fő célt szolgálnak a Java platformon belül. • Egyrészt, mint más szabványos kódgyűjtemények, biztosítanak olyan jól ismert szolgáltatásokat, mint objektumok listájának kezelése, összetett karakterlánc műveletek, stb. • Másrészt, absztrakt felületeket biztosít olyan műveletekhez, amelyek egyébként erősen függenek a konkrét hardvertől és az operációs rendszertől. Ide tartozik többek között a hálózatkezelés és a fájlkezelés, amik általában függenek a natív platform képességeitől. A java.net és a java.io könyvtárak megvalósítják a natív hívásokat, és egy egységes felületet biztosítanak a Java alkalmazásoknak ezek elérésére. 16

  17. Harmadrészt előfordulhat, hogy egy platform nem támogatja az összes olyan tulajdonságot, amire egy Java alkalmazás számítana. Ekkor az osztálykönyvtár vagy emulálja az adott szolgáltatást, felhasználva az elérhető eszközöket, vagy megad egy szabványos módot a szolgáltatás elérhetőségének lekérdezésére. 17

More Related