Szoftvertechnológia Alapjai Java Előadások

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Szoftvertechnológia alapjai

Java előadások

 Förhécz András, doktorandusz


 e-mail: fandrew@mit.bme.hu
 tárgy honlap:
 http://home.mit.bme.hu/~fandrew/szofttech_hu.html
A mai előadás tartalma:
 Miért pont Java?
 Hello World!
 Fordítás
 Szemétgyűjtő
 Java nyelv alapjai
 adattípusok
 változók
 operátorok
 vezérlő szerkezetek
Miért pont Java? I.
“Java: A simple, object-oriented, network-savvy,
interpreted, robust, secure, architecture neutral, portable,
high-performance, multithreaded, dynamic language.”
The Java Language: An Overview – java.sun.com

 Egyszerű
 Magas szintű, objektum orientált
 Biztonságos, robusztus
 erősen tipizált nyelv
 Platform független, hordozható
Miért pont Java? II.

 Interpretált, dinamikus
 virtuális gép
 class loader
 byte kód
 Többszálú
 elosztott rendszerek
Hello World!
/* Hello World! */
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
 ClassLoader()
 Ellenőrzés
 Memória foglalás
 A hivatkozott osztályok betöltése
 Inicializálás
 main metódus meghívása
Fordítás
 JVM
 Java API

 program file: osztaly.java


 compiler: `javac osztaly.java`
 bytekód: osztaly.class
 interpreter: `java osztaly`
JAR file-ok
 Segítségükkel több file-t egy archívumba pakolhatunk
 Tipikusan egy alkalmazás class file-jait tartalmazza
 Az így csomagolt alkalmazás futtatható közvetlenül,
appletként, az osztályai hozzáférhetőek
 Előnyei:
 biztonságos
 rövid letöltés
 tömörítés
 hordozhatóság
Java komponensek – JDK 1.4
Java komponensek – JDK 5.0
Szemétgyűjtő (Garbage Collector)

 egyik legfontosabb szolgáltatás


 mérőszámai:
 Szünet időtartam
 Szünet megjósolhatóság
 Memória használat
 CPU használat
 Virtuális memória kezelés
 Cache kezelésű
Java nyelv alapok
 adattípusok
 változók
 operátorok
 vezérlő szerkezetek

 osztályok
 interfészek
 RTTI
 reflexió
 alap objektumok
 csomagkezelés
Változók – adattípusok
Primitív adattípusok
 C++ boolean: 1, 0 nincs!

 szigorú szabályok a byte-okra


(platform függetlenség)

 standard default értékek


(platform függetlenség)

 nincs unsigned!

 string mindig objektum (String)


Wrapper (csomagoló) osztályok

 Minden primitív adattípusnak van


csomagoló osztálya
 Segítségükkel a primitív típusokat is
objektumként kezelhetjük
 Boolean, Integer, …
Változók
 Minden változóhoz típust és nevet kell rendelnünk.
 A változók nevét kicsi betűvel kezdjük, a több szóból álló
változókat a szóhatárnál nagybetűvel választjuk el.
 bool isVisible;
 az aláhúzást mindenhol használhatjuk de csak a
konstansokban szokás
 az utasítások végén ;
 Létrehozáskor az alapértelmezett érték:
 0
 0.0
 False
 /U0000
 null
Példa
public class MaxVariablesDemo {
public static void main(String args[]) {
byte largestByte = Byte.MAX_VALUE;
short largestShort = Short.MAX_VALUE;
int largestInteger = Integer.MAX_VALUE;
long largestLong = Long.MAX_VALUE;
float largestFloat = Float.MAX_VALUE;
double largestDouble = Double.MAX_VALUE;
char aChar = 'S';
boolean aBoolean = true;
System.out.println("The largest byte value is " + largestByte);

}
}
Operátorok
zárójelek, indexelés, osztály komponensére
() [] .
hivatkozás
++ - - (pre- vagy poszt-) inkremens és dekremens,
!~ logikai és bitenkénti negálás,
instanceof típus ellenôrzés

new (type)expression új egyed létrehozása

*/% szorzás, osztás, moduló


nincs sizeof()
+- összeadás, kivonás
van instanceof
<< >> >>> bitenkénti léptetések
< > >= <= összehasonlítások
== != egyenlô, nem egyenlô
& bitenkénti AND
^ bitenkénti XOR
| bitenkénti OR
&& logikai AND
|| logikai OR
?: feltételes kifejezés
= += -= *= /= %= ^=
különbözô értékadások
&= |= <<= >>= >>>=
Vezérlő szerkezetek I.
do
while (kifejezés)
 ciklusok: {
{
utasítások
utasítások
 while }
}
while (kifejezés);
 do-while
for (inicializálás; befejezés; növekmény)
 for {
utasítások
 döntési pontok: }
switch (változó(csak int))
 if-else if (feltétel) {
{ utasítás ha teljesül} case érték1: utasítás1;
 switch-case else
break;
case érték2: utasítás2;
{ utasítás ha nem teljesül } break;
default: utasítás;
}
Vezérlő szerkezetek II.
try
{ utasítások }
catch (kivétel neve)
{ utasítások}
 kivétel kezelés: finally
{ utasítások}
 try-catch-finally
 elágazás
 break (kilép)
 continue (ellenőrzi a feltételt)
 return (kilép a metódusból)

You might also like