A Java adattípusai a következők:
boolean: logikai típus, értéke true vagy false lehet.
char: két bájtos adatként egyetlen unicode karakter tárolására használjuk
byte: egy bájtos előjeles egész (-127 és 128 közti érték)
short: két bájtos előjeles egész (-32735 és 32736 közti érték)
int: négy bájtos előjeles egész
long: nyolc bájtos előjeles egész
float: négy bájton ábrázolt lebegőpontos szám
double: nyolc bájton árbrázolt lebegőpontos szám
Az alaptípusok nem referenciatípusok! Ahhoz hogy referenciával rendelkezzenek (kvázi a C nyelv mutatóinak felel meg) ahhoz úgynevezett csomagoló osztályokat kell alkalmaznunk. Ezzel az elemi típusokat objektumként tudjuk kezelni és ahol referenciatípust vár egy paraméter, ott csomagolóosztályként tudunk értékeket átadni.
A csomagolóosztályok a következők:
Boolean, Character, Integer (ez az összes egész típusra használható), Float és Double.
Ezek az adattípusok gépfüggetlenek, azaz minden JVM adaptáció pontosan ugyan úgy kezeli ezeket, függetlenül az adott hardvertől.
Változók deklarálásakor a C-ben megszokottak szerint járhatunk el.
Például:
int i;
float x,y;
boolean b;
deklarációkor egyből értéket is kaphatnak a változók:
char c='A';
int i=100, j=200;
Az egyes változók alapértékeket kapnak, ha nem adunk értéket a definiáláskor. Ezek a következők:
char -> '\0'
egész típusok -> 0
lebegőpontosok -> 0.0
boolean -> false
A Java objektumok a nyelv legfontosabb elemei. Az objektumokat úgynevezett referenciaváltozókon keresztül érjük el. A referenciaváltozók a C nyelv mutatóihoz hasonlítható, azzal a különbséggel hogy míg a mutatók kezelése teljes mértékben a programozó feladata és felelőssége, addig a referenciák a JVM menedzselése alatt állnak. Közvetlenül meg sem tudható egy objektum referenciájának értéke (azaz a memóriacím ahol megtalálható az objektum). Ez biztonságossá és egyszerűvé teszi a programozást.
Referencia a new operátorral kérhető a példányosítás során:
Car mycar = new Car();
Innentől kezdve a mycar nevű referenciaváltozó automatikusan egy Car típusú objektum egészét jelenti.
A referenciáknak értékül adható a null érték, mely sehová sem mutat. Ezzel elérhetetlenné válik az addig hivatkozott objektum. Az objektumokat a C++ nyelven meg kellett szüntetni ha már nem használtuk, hogy a lefoglalt memória felszabadulhasson. Ezt az úgynevezett destruktor hívással lehetett megtenni. Javában nincs szükség destruktor hívásra. Az objektumokat a JVM kezeli és ha már nincs rá hivatkozás, akkor az úgynevezett Garbage Collector (GC) mechanizmus felelős a memória felszabadításáért.
2014. szeptember 21., vasárnap
Hogyan működik a Java? - A Java fejlesztői és futtató környezet
A programkészítés lépései természetesen a Java programozás kapcsán is értelmezhetők. Ezek a következők:
- Program írás
- Fordítás
- Futtatás
Programírás:
A programírás kapcsán a Java nyelv szabályai szerint megírjuk a programunk forrásnyelvi változatát. Ennek eredményeként egy .java kiterjesztésű standard ASCII szövegfájlt kapunk.
Fordítás:
A fordítás során ezt a forrásfájlt kell átalakítani bájtkóddá, amit majd a Java virtuális gép futtatni tud. Ahhoz hogy ezt az átalakítási műveletet el tudjuk végezni, szükség van a Java fordítóprogramra. Ez a Java Development Kit (JDK) része. A JDK többféle változatban és többféle platformra áll rendelkezésre. Linux, Windows, Mac és Solaris rendszerekre is elérhető. A JDK a fejlesztéshez szükséges segédprogramokat, fordítót, nyomkövetőt és a szabványos osztálykönyvtárakat tartalmazza. Az osztálykönyvtárak 6500-nál is több intefészt, osztályt tartalmaznak, melyek nagyban megkönnyítik a programfejlesztést.
Az előző cikkben említettem hogy létezik Micro, Standard és Enterprise Edition, attól függően hoyg milyen jellegű alkalmazást szeretnénk készíteni. Kezdetnek a Java SE megfelelő választás.
A telepítők az Oracle honlapján elérhetők!
A JDK telepítése után rendelkezésre fog állni a Java fordító (Java compiler), mely a javac parancs kiadásával érhető el. A fordító verziója a javac -version paranccsal kérdezhető le.
Futtatás:
Futtatási fázisban a lefordított Java bájtkódot átadjuk a virtuális gépnek, amit betölt és elindít.
A Java futtatási környezet (Java Runtime Environment, JRE) tartalmazza a virtuális gépet (JVM). A JRE része a fentebb említett JDK-nak. Tehát ha valaki telepítette a JDK-t annak már van telepített JRE-je is. A JDK-ra igazából a programozóknak van szüksége, a felhasználóknak elegendő a JRE. Ezért külön telepítőcsomagban is elérhetővé tették a JRE-t, amit szintén az Oracle honlapjáról tölthető le. Ezután a java parancs rendelkezésre áll, hogy futtassuk segítségével a Java programjainkat.
Példa:
Példaként nézzük a méltán híres Hello Wolrd! programot Java nyelven:
A Java nyelv szabályai szerint egy osztálydefiníciót kell készítenünk. A forrásfájl nevének meg kell egyezni a definiált osztály nevével. Hozzuk létre tehát a HelloWorld Java osztályt egy HelloWorld.java fájlban! A fájl a következőt tartalmazza:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Ez tehát a forrásállományunk. Ahhoz hogy ezt futtatni tudjuk először bájtkóddá kell átalakítani, lefordítani. Ehhez adjuk ki a következő parancsot:
javac HelloWorld.java
A fordítás eredményeként létrejön a HelloWorld.class állomány, mely már java bájtkódot tartalmaz és amit már bármilyen JVM futtatni képes.
A futtatáshoz adjuk ki a következő parancsot:
java HelloWorld
A parancs hatására betölti a JVM a HelloWorld java osztályt és meghívja a main() metódusát. Mivel ez az osztály nincs példányosítva ezért a main metódus csak akkor érhető el ha statikus metódusként deklaráljuk. Ezért szükséges a public static minősítés a main deklarálásakor.
Az alábbi kép bemutatja a fentebb leírt dolgokat, sorba véve a JDK és a JVM használatát:
Az alábbi kép bemutatja a fentebb leírt dolgokat, sorba véve a JDK és a JVM használatát:
![]() |
| Java fejlesztés lépései a HelloWorld példa alapján |
A Java kialakulása
A Java a 90-es években jelent meg, az Internet korszak kiteljesedésének kezdetén. Azóta látványos fejlődésen ment keresztül és a fejlődés napjainkban is tart.
A Java kialakulásának kezdetén a tervezők (Patric Naughton és James Gosling) egy olyan futtatási környezetben gondolkodtak, ami bármilyen platformon képes a Java programokat futtatni. Tehát egy olyan virtuális gép megvalósítása volt a cél, melyre a forrásprogramból egy közbenső kódot generálnak és minden platformon ahol létezik a virtuális gép, futtatni lehet ezt a közbenső kódot. Így alakult ki a Java Virtual Machine - azaz a JVM - ami elengedhetetlen a Java programok futtatása terén. Így gyakorlatilag a nyelvet általánossá tették és a különféle architektúrákon is futhattak a Java programok.
A JVM egy olyan szoftveresen megvalósított környezet, ami képes betölteni a Java osztályokat (class fájlok) és az osztálydefinícióban lévő java forrásnyelvi utasításokat képesek az adott architektúra gépi nyelvére fordítani és azt végrehajtani.
A Java tervezői a C/C++ nyelveket használták, így megtartották annak szintaktikai elemeit, kulcsszavait. Ugyanakkor egyszerűsítettek ahol lehetett és tisztán objektum-orientált nyelvvé alakították. Ez mellett úgy tervezték meg hogy a programozási hibák már a fordítási időben kiderüljenek.
A Java első sikereit a Webnek köszönheti. Az akkori webböngészőkbe implementálták a JVM-et és így képesek voltak dinamikus weboldalak megvalósítására.
A Java hivatalosan 1995 májusában jelent meg a SUN MICROSYSTEM égisze alatt. A második kiadás 1998-ban került publikálásra. Ebben már különválasztották a beágyazott (Micro Edition), az általános desktop (Standard Edition) és az üzleti célú (Enterprise Edition) verziókat.
A Java nem csupán egy programozási nyelv, hanem egy igen gazdag és részletes, szinte mindenre kiterjedő programozási és futtatási környezet, mely folyamatosan fejlődik.
Jelenleg (2014 őszén) a Java 8 a legfrissebb verzió és az Oracle szárnyai alatt fejlődik (1.7 verzió óta).
[Varjasi: Programozás III. alapján]
A Java kialakulásának kezdetén a tervezők (Patric Naughton és James Gosling) egy olyan futtatási környezetben gondolkodtak, ami bármilyen platformon képes a Java programokat futtatni. Tehát egy olyan virtuális gép megvalósítása volt a cél, melyre a forrásprogramból egy közbenső kódot generálnak és minden platformon ahol létezik a virtuális gép, futtatni lehet ezt a közbenső kódot. Így alakult ki a Java Virtual Machine - azaz a JVM - ami elengedhetetlen a Java programok futtatása terén. Így gyakorlatilag a nyelvet általánossá tették és a különféle architektúrákon is futhattak a Java programok.
A JVM egy olyan szoftveresen megvalósított környezet, ami képes betölteni a Java osztályokat (class fájlok) és az osztálydefinícióban lévő java forrásnyelvi utasításokat képesek az adott architektúra gépi nyelvére fordítani és azt végrehajtani.
A Java tervezői a C/C++ nyelveket használták, így megtartották annak szintaktikai elemeit, kulcsszavait. Ugyanakkor egyszerűsítettek ahol lehetett és tisztán objektum-orientált nyelvvé alakították. Ez mellett úgy tervezték meg hogy a programozási hibák már a fordítási időben kiderüljenek.
A Java első sikereit a Webnek köszönheti. Az akkori webböngészőkbe implementálták a JVM-et és így képesek voltak dinamikus weboldalak megvalósítására.
A Java hivatalosan 1995 májusában jelent meg a SUN MICROSYSTEM égisze alatt. A második kiadás 1998-ban került publikálásra. Ebben már különválasztották a beágyazott (Micro Edition), az általános desktop (Standard Edition) és az üzleti célú (Enterprise Edition) verziókat.
A Java nem csupán egy programozási nyelv, hanem egy igen gazdag és részletes, szinte mindenre kiterjedő programozási és futtatási környezet, mely folyamatosan fejlődik.
Jelenleg (2014 őszén) a Java 8 a legfrissebb verzió és az Oracle szárnyai alatt fejlődik (1.7 verzió óta).
[Varjasi: Programozás III. alapján]
Feliratkozás:
Bejegyzések (Atom)


