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

Slides:



Advertisements
Hasonló előadás
Grafikus felhasználói felület Windows alatt
Advertisements

© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
C++ programozási nyelv Gyakorlat hét
mLearning megoldások Moodle környezetben
iOS Android Symbian WebOS Kernel Multi-Touch Multitask.
Adminisztratív kérdések
3. A programozás eszközei, programozás-technikai alapismeretek
Tájékoztató az R programról pszichológusoknak. A programról Az R egy nyílt forrású statisztikai és grafikai környezet, egyben programozási nyelv, amelynek.
Cigány ügyek az Emberi Jogok Európai Bírósága előtt Siófok, szeptember 16.
Adatbányászati technikák (VISZM185)
Fajfrik Dóra tanárjelölt munkája alapján
Programozás.
Bevezetés a Java programozásba
A szoftver.
Az operációs rendszer.
Virtuális méréstechnika
Kincses Zoltán, Mingesz Róbert, Vadai Gergely
Mérés és adatgyűjtés laboratóriumi gyakorlat Makan Gergely, Mingesz Róbert, Nagy Tamás 2. óra szeptember 9., 10. v
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
4. Gyires Béla Informatikai Nap május 6.1 Márton Ágnes Debreceni Egyetem Informatikai Kar Informatikai Rendszerek és Hálózatok Tanszék A Virtual.
BE KI Perifériák Számítógép.
Ruby nyelv. Története Yukihiro Matsumoto (szül ápr. 4.) alkotta meg, az ideális script nyelv hosszú eredménytelen keresése után. A lehetséges jelöltek.
Az operációs rendszerek
A C++ programozási nyelvSoós Sándor 1/12 C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
Programozási technológia 1
Az operációs rendszer.
A memória tárolja a végrehajtandó programokat és a feldolgozásra váró adatokat. A számítógép memóriája adattárokból áll. Minden ilyen adattár memóriaelemekből.
Bevezetés a C++ programozási nyelvbe
A számítógép jelentősége a hétköznapokban
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
Web Application for Resource Planning
ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.
III. Java környezet 9. A Java nyelvről 10. Java programfejlesztés, JDK.
Operációs rendszer.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Az operációs rendszer Az operációs rendszer a számítógépet működtető szoftver, amely a számítógép indulásakor azonnal betöltődik a számítógép memóriájába:
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Visual Basic 2008 Express Edition
Bevezetés az operációs rendszerek világába TMG SZK.
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
A szoftver, szoftvertípusok
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Podoski Péter és Zabb László. Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök.
Miért jó nekünk kutatóknak a felhő?
Integrált Könyvtári Rendszer. Történeti áttekintés  ‘85-ben kezdődött el a fejlesztés  ‘94-ben már a felhasználók rendelkezésére állt  ‘95-től az OSZK-val.
EZ AZ ÉN MŰVEM Készítette: Pörzsölt Krisztián
A Windows Server 2003 termékcsalád A Windows Server 2003 termékcsaládnak 4 tagja van: Windows Server 2003, Standard Edition Windows Server 2003, Enterprise.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Gyurkó György. Az OO programozás és tervezés története 1960-as évek: SIMULA (véletlen folyamatokat szimuláló programok írása) az OO nyelvek őse 1970-es.
2. Operációs rendszerek.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
DLL használata és készítése Feladat
A projekt célja O Egy 2 dimenziós rakpart készítése a TBA cég megbízásából. O Az Eclipse plug-in megengedi a felhasználónak, hogy különböző tárgyakat.
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
Mobil operációs rendszerek
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
3. Fejlődéstörténet Összeállította: Devecz Ferenc Operációs rendszerek.
Operációs rendszerek Az operációs rendszerek működésének alapfogalmai.
Operációs rendszerek.
Az operációs rendszerek
Mobilkommunikáció Eszközök és hálózatok
Az operációs rendszer  Minden jog fenntartva.
MySQL története, részei, felhasználhatóság, PHPMyAdmin
Előadás másolata:

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

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

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

Java programok készítéséhez a (JDK, Java fejlesztői készlet) 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

A Java első kiadása a Java Developement Kit 1. 0 (JDK 1 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

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

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ányos osztálykönyvtárak gyűjtemény-ét, amik egységes működést biztosítanak. 8

Java osztálykönyvtár gyűjtemény ? Ábra.java … Rajzol (zöld kör); 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ó Solaris Javac Ábra.java Windows Ábra.class 10011101010111011101011101… Siemens Java bájtkód (bináris állomány, de még nem futtatható!) Samsung Nokia Linux Java Ábra Java Virtuális Gép + Java osztálykönyvtár gyűjtemény 9

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

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

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

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

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

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

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

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