23
Ficsor Lajos Java I.: Történet, jellemzők, JDK JAVA1 / 1 Java I. Java I. A A Java programoz Java programoz á á si nyelv si nyelv t t ö ö rt rt é é nete nete , alapvet , alapvet ő ő jellemz jellemz ő ő i i Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12.

Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 1

Java I.Java I.AA Java programozJava programozáási nyelvsi nyelvttöörtrtéénetenete, alapvet, alapvetőő jellemzjellemzőőii

Ficsor LajosMiskolci Egyetem

Általános Informatikai TanszékUtolsó módosítás: 2007. 02. 12.

Page 2: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 2

Egy kis történelem 1.

• 1990-es évek eleje: a SUN belső project-je JamesGosling vezetésével (set top box) platform-független technológia szükségessége.

• Egyik akkori nyelv sem volt megfelelő, ezért terveztek egy újat.

• A projekt (és vele az új nyelv) aztán lassan elhalt.

Page 3: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 3

Egy kis történelem 2.• 1990-es évek közepe: az Internet rohamos

terjedése újra felvetette a platform-független technológia szükségességét.

• Újraéledt a project, de általánosabb célkitűzéssel.• Eredménye a Java nyelv első verziója lett.

Page 4: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 4

Egy kis történelem 3.• 1995: Java 1 platform • 1999: Java 2 platform (1.2-es verziószámtól) • Jelenleg: (2007. február)

– J2SE 1.6 (Java 6 platform)

A Java egyszerre• programozási nyelv• platform

Page 5: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 5

A Java nyelv alapvető tulajdonságai 1.

Magas szintű programozási nyelv• platform-független• általános célú• teljesen objektum-orientált • egyszerű• interpretált (de speciális módon)• elosztott (distributed)

Page 6: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 6

A Java nyelv alapvető tulajdonságai 2.• robosztus • biztonságos • hordozható• többszálú (multithreaded)• A C++ ismeretében született, annak formalizmusát

tekintette mintának• A C++ hátrányait igyekezett kiküszöbölni

Page 7: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 7

A Java nyelv egyszerA Java nyelv egyszerűű• C / C++ szerű nyelv, de nem vette át azokat a

nyelvi elemeket, amelyek veszélyes konstrukciókat engednek meg. Legfontosabb egyszerűsítés a pointerek "száműzése".

• A Java nyelv könnyen megtanulható.• Ez nem jelenti azt, hogy jó Java programok írása

is könnyű feladat• Nagyon nagyméretű standard könyvtár készlet! Ez

hatékonyabbá teszi a programozást, de nehezíti a megtanulást.

Page 8: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 8

A Java egyszerre fordított és interpretált

JVM

Forráskód Byte kód Gépi kód

Page 9: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 9

A Java mint platform• A Java egy tisztán software megvalósítású

platform is. Két része van • a Java virtuális gép (JVM) • a Java programozási interface (Java API)

Page 10: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 10

A Java szabvA Java szabváányoknyok

A SUN az alábbi részekre (kiadásokra) osztja a Java alapú szaványos eszközöket:

• J2SE - Java 2 Plattform, Standard Edition

• J2EE- Java 2 Plattform, Enterprise Edition

• J2ME- Java 2 Plattform, Micro Edition

Page 11: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 11

A Java szabvA Java szabváányok nyok -- J2SEJ2SE• Mindazon alapszolgáltatások, amelyek Java

programok készítését teszik lehetővé.• Legfontosabb részei

– maga a Java nyelv– alapvető hálózati szolgáltatások– RMI– applet és a szervlet– lokális komponensek (JavaBeans)– GUI (platformfüggetlen felhasználói interface elemek)– és még nagyon-nagyon sok más ...

Page 12: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 12

A Java szabvA Java szabváányok nyok -- J2EEJ2EE• J2EE- Java 2 Plattform, Enterprise Edition• A J2SE szolgáltatásait is tartalmazza, ezen felül a

legfontosabb részei:– komponens szemléletű fejlesztés– a nagyméretű alkalmazások készítését támogatja– Web szolgáltatás alapú alkalmazások készítése– biztonságos, robosztus rendszerek fejlesztésének

eszözei

Page 13: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 13

A Java szabvA Java szabváányok nyok -- J2MEJ2ME• J2ME- Java 2 Plattform, Micro Edition

– Kis erőforrásokkal rendelkező rendszerekre optimalizált

– Smart card-ok, vezeték nélküli eszközök, beágyazott rendszerek stb. fejlesztéséhez

Page 14: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 14

A Java program

Java program: Java-fordítóval készült önállóalkalmazás.

• az adott architektúrán futó JVM hajtja végre• mindazon jogokkal rendelkezik, mint bármely más

alkalmazás

Page 15: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 15

A Java applet

Applet: HTML oldalból elérhető, végrehajthatóbyte kód, ami Java forrásból készült.

• A HTML kódba csak egy hivatkozás kerül, az applet maga (a lefordított kód) bárhonnan letöltődhet

• a HTML oldal értelmezője (a böngésző) hajtja végre (a böngésző valósítja meg a JVM-et)

• korlátozott jogokkal rendelkezik biztonsági okok miatt

Page 16: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 16

ÉÉs egy ns egy néévrokon: a vrokon: a JavaScriptJavaScript• Eredetileg LiveScript néven a Netscape-nél

kifejlesztett script nyelv (tehát nem bináris kód)• Célja web oldalak dinamikussá tétele. A

(szöveges) kód része a html oldalnak.• A Java-hoz hasonlóan a C++ szintakszisához

hasonló formalizmus• Nem objektum orientált, csak objektum alapú

(nem implementálja valamennyi alapelvet)• Bár ezt is a böngésző értelmezi, semmi köze a

Java platformhoz (nem a JVM értelmezi)

Page 17: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 17

Java alapJava alapúú fejlesztfejlesztééss• Valamennyi Java szabvány, és a SUN által

implementált alapvető fejlesztőeszközök nyílt forrásúak és ingyenesek.

• Ezen kívül számtalan– nyílt forrású, ingyenes– zárt forrású, de ingyenes– kereskedelmi termék.

Page 18: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 18

A minimA minimáális fejlesztlis fejlesztőőkköörnyezetrnyezetA J2SE szolgáltatásaihoz:• J2SDK vagy újabban JDK ("Java Development

Kit)– a java.sun.com oldalról ingyen letölthető

számtalan platformra– a legfrissebb verzió: JDK 6.0 (2007. február)– A tárgy keretében elhangzottakhoz az JDK 1.2 vagy

frissebb verziók mindegyike megfelelő. A kivételeket külön jelezzük.

• Egy tetszőleges szövegszerkesztő

Page 19: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 19

KKéényelmnyelmesebbesebb fejlesztfejlesztőő kköörnyezetekrnyezetekIngyenes integrált fejlesztőeszközök például:• NetBeans

– letölthető a java.sun.com címről

• Eclipse– letölthető a www.eclipse.org címről

• Mindkét fejlesztőeszköz maga is Java-ban íródott, tehát sokféle platformon futtatható (Pl. Windows, Linux)

Page 20: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 20

A JDK legfontosabb elemeiA JDK legfontosabb elemei• A Java API-t implementáló könyvtárak• Segédprogramok:

– javac: java fordító– java: a JVM (futtatáshoz)– javadoc: automatikus dokumentáció generáláshoz a

forrás szöveg és a benne található speciális kommentek alapján

– jdb: debugger– stb.

Page 21: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 21

A minimA minimáális futtatlis futtatóó kköörnyezetrnyezetA J2SE szolgáltatásaihoz:• JRE (Java Runtime Environment)

– A java.sun.com címről letölthető számtalan platformra

– A JDK tartalmazza• Ha egy gépen csak JRE van, bármely más gépen

fejlesztett Java program futtatható, ha ugyanolyan, vagy korábbi verziójú JDK segítségével készült.

Page 22: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 22

A "Hello World" programclass HelloWorld{public static void main( String args[] ){System.out.print("Hello ");if ( args.length == 0 ) System.out.println("World!");

elseSystem.out.println(args[0] + "!");}

}Kötelezően egy HelloWorld.java file-ban kell lennie.

Page 23: Java I. AJava programozási nyelv története, alapvetőjellemzőiusers.iit.uni-miskolc.hu/ficsor/OOPSegedletek/java1.pdf · vrokon: a JavaScript •Eredetileg LiveScriptnéven a

FicsorLajos

Java I.: Történet, jellemzők, JDK JAVA1 / 23

FejlesztFejlesztéési lsi lééppééseksek• A HelloWorld.java file megszerkesztése egy

tetszőleges szövegszerkesztővel• Fordítás:

– javac HelloWorld.java– abban a jegyzékben kell kiadni, ahol a forrásfile van

• A fordítás eredménye egy HelloWorld.class file, ugyanabban a jegyzékben

• Futtatás:– java HelloWorld paraméter– a HelloWorld.class file-t futtatja