1.2. Bevezetés a Java technológiába

A Java technológia egyaránt programozási nyelv és platform.

1.2.1. A Java programozási nyelv

A Java egy magas szintű nyelv a következő főbb jellemzőkkel:

  • egyszerű
  • objektumorientált
  • előfordított
  • értelmezett
  • robusztus
  • biztonságos
  • semleges architektúrájú
  • hordozható
  • nagy teljesítményű
  • többszálú
  • dinamikus

Megjegyzés: Valószínűleg a felsorolás egy része most még nem sokat mond. Mire azonban a jegyzet végére érnek, és a Java nyelvű fejlesztésben legalább alap szintű gyakorlatuk lesz, ez a lista sokkal többet fog mondani.

A legtöbb programozási nyelv esetén fordítást vagy értelmezést hajtunk végre, mielőtt a program futna a gépünkön. A Java esetén a kettőnek egy különös keverékét használjuk. Először a forrásprogramot (myProgram.java) a fordító (compiler, bin\javac.exe) egy közbülső nyelvre fordítva Java bájtkódot (myProgram.class) állít elő, és ezt a platform-független kódot értelmezi és futtatja a Java VM (interpreter, bin\java.exe). A fordítás egy alkalommal történik, az értelmezés pedig minden alkalommal, ahányszor a program végrehajtódik. A következő ábra ennek működését illusztrálja.

Compiler és VM

A Java bájtkódot gépi kóddá alakítja a Java VM. Minden Java értelmező, akár a fejlesztőkörnyezet, akár egy böngészőben futó applet, tartalmaz Java VM-et a futtatáshoz.

A Java bájtkód segítségével megoldható az, hogy csak egyszer kell megírni egy Java programot, majd tetszőleges (megfelelő verziójú) Java VM-et tartalmazó gépen futtatni lehet. A Java programunkat bármelyik operációs rendszeren telepített fordítóval le lehet fordítani, mindenütt használható lesz.

Megjegyezés: A fordítást és értelmezést is alkalmazó hibrid megoldás manapság egyre nagyobb népszerűségnek örvend. A Microsoft .Net platformja sok architektúrális elemet vett át a Javától, a web hagyományos értelmező megoldásai ma már sokszor előfordítással is kombinálhatók.

1.2.2 A Java platform

A platform hardver vagy szoftverkörnyezet, ahol a programok futnak. A legtöbb platform a hardvert és az operációs rendszert jelenti. A Java platform annyiban különbözik a legtöbb más platformtól, hogy teljesen szoftverplatform, és más hardver alapú platformokra épül. A Java platform két komponensből áll:

  • Java VM
  • Java API

A Java API igen sok (több ezer) használatra kész szoftverkomponenst tartalmaz: csomagokba szervezett osztályokat és interfészeket.

A következő ábra bemutatja a Java platform működését.

Java platform működése

A natív kód olyan kódot jelent, amelyik a hardveren közvetlenül futtatható. A platformfüggetlen Java kód valamivel lassabb, mint a natív kód. Azonban jó fordítóval, optimalizált értelmezővel, és JIT bájtkód fordítóval a különbség elég kicsi lehet. A mai futtatókörnyezetek már tartalmazzák a JIT (Just in time) fordítót, amivel az első futtatás előtt natív kódra fordul a bájtkód, így a további futások során már közvetlenül a natív kód futtatható.

Megjegyzés: Az előzőek következménye, hogy egy Java alkalmazás első futtatása több ideig tarthat, de a további futtatásoknál ez az időveszteség nem fog jelentkezni.