Java 2 útikalauz programozóknak 5.0
A hab

Nyékyné Gaizler Judit,
Antal György, Balázs Iván József, Csepregi Szabolcs,
Csizmazia Balázs, Csonka Ferenc, Csontos Péter,
Dezső András, Dezső Balázs, Dévai Gergely,
Fodor Szabina, Fornai Péter, Frohner Ákos,
Kégli Zoltán, Kitlei Róbert, Kozsik Tamás,
Lakatos Attila, Mészáros Mónika, Pécsy Gábor,
Porkoláb Zoltán, Riskó Gergely, Salamon András,
Selmeci Attila, Szabó Richárd

BUDAPEST, 2008.


Tartalomjegyzék

A.Távoli metódushívás
A.1.A távoli metódushívás modellje
A.2.A távoli metódushívás eszközei
A.2.1.A paraméterátadás kérdései
A.2.2.A kliens és a szerver összekapcsolódása
A.2.3.Tipikus hibák távoli metódushívás során
A.3.Távoli metódushívás Java környezetben
A.4.Egy távoli objektum implementációja
A.5.Paraméterátadás
A.6.A Java RMI viselkedése kommunikációs hibáknál
A.7.A kliens- és a szervercsonk összekapcsolása
A.7.1.Távoli objektumok megnevezése
A.7.2.Távoli referenciák elérése
A.7.3.A registry implementációja
A.8.A példaprogramunk befejezése
A.9.Távoli metódusok párhuzamos környezetben
A.10.Távoli objektumok osztott szemétgyűjtése
A.10.1.Osztott szemétgyűjtés szerveroldala
A.11.Távoli osztályok elérése
A.12.A példaprogramunk tesztelése
A.13.Visszatekintés a fejlesztés menetére
A.14.Távoli metódushívás hálózati tűzfalak mögött
A.15.Objektumok aktiválása
A.15.1.Az objektumaktiváció modellje
A.15.2.Aktivációs információk
A.15.3.Aktivációs csoportok információi
A.15.4.Az aktivációs mechanizmusok alapelemei
A.15.5.Egy új aktivációs csoport létrehozása
A.15.6.Az aktivációs mechanizmus központi eleme
A.15.7.Kezdeti értékkijelölés alkalmazása
A.15.8.Az aktivációt támogató külső folyamat
A.16.Egy példa: perzisztens naplózás
A.17.Komolyabb példa: tranzakciókezelés RMI felett
A.17.1.Több résztvevő működésének szinkronizációja
A.17.2.A megoldott feladat
A.17.3.A feladatot megoldó eszközök áttekintése
A.17.4.A távolról elérhető komponensek interfészei
A.17.5.A komponensek összekapcsolása
A.17.6.A naptárokat megvalósító osztály
A.17.7.A kétfázisú megegyezési protokoll
A.17.8.A koordinátorokat konstruáló osztály
A.17.9.A naptárakba bejegyzést elvégző osztály
A.17.10.A program fordítása és kipróbálása
A.17.11.A megoldás forráskódja
A naptár implementáció forráskódja
A tranzakció kivétel forráskódja
A koordinátor osztály forráskódja
A koordinátorgyártó osztály forráskódja
A lefoglaló osztály forráskódja
A tesztprogram forráskódja
A.18.Egy elosztott szinkronizációs mechanizmus
A.19.A Java 5.0 újdonságai
A.19.1.Dinamikus csonkosztály-generálás
A.19.2.Az RMI hálózati szintű vezérlése végpontgenerátorokkal
A végpontgenerátorok bemutatása egy példán keresztül
A.19.3.Biztonságos végpontok (JSSE)
A.19.4.Igény szerinti alkalmazás-indítás
Az inetd paraméterezése
A rendszer kipróbálása
A.19.5.Az rmid igény szerinti indítása
B.A CORBA és a Java kapcsolata
B.1.A CORBA felépítése
B.2.Az Interface Definition Language (IDL)
B.3.Az IDL-Java leképezés
B.4.Példa a CORBA használatára
B.5.CORBA névszolgáltatás
B.6.További lehetőségek
C.A Java és a matematika
C.1.BigDecimal osztály
C.2.BigInteger osztály
C.3.BigInteger osztály jelentősége: titkosítás
C.3.1.RC5, szimmetrikus algoritmus
C.3.2.RSA, aszimmetrikus algoritmus
C.3.3.Nagy prímszámok generálása
C.3.4.RSA algoritmus megvalósítása Java nyelven
Kulcsok generálása
A szöveg kódolása, dekódolása
A felhasználói felület
C.3.5.Hash függvények, MD5 algoritmus
C.3.6.Kriptográfiai protokollok
D.Biztonság
Egy összetett rendszer
D.1.A Java biztonsági rendszerének felépítése
D.1.1.A Sandbox modell változatai
D.1.2.A Java 2 biztonsági modellje
D.1.3.Az új védelmi mechanizmus áttekintése
D.2.Jogosultságok
D.2.1.Speciális jogosultságok és jogosultságcsoportok
java.security.PermissionCollection
java.security.Permissions
java.security.UnresolvedPermission
java.security.AllPermission
D.2.2.új jogosultságok létrehozása
D.3.Biztonsági szabályok
D.3.1.Szabályzatobjektumok és -osztályok létrehozása
A szabályzat használata
D.3.2.Az alapértelmezett szabályzatimplementáció
Kulcsadatbázisok
Jogosultságok megadása
Jellemzőkiterjesztés
Jogosultságok hozzárendelése
Rendszerszintű és felhasználói szabályzat
D.3.3.Biztonsági kivételek
D.4.A hozzáférést vezérlő mechanizmusok
D.4.1.Védelmi tartományok
D.4.2.Hozzáférés-vezérlő
Az eldöntő algoritmus
Privilégiumok kezelése
D.4.3.Hozzáférési környezet
java.security.AccessControllContext
D.5.Biztonságos osztálybetöltés
Osztálybetöltők hierarchiája
Elsődleges osztálybetöltő
Az osztálybetöltés menete
D.5.1.JAR Fájlok
D.5.2.Osztálybetöltés és jogosultságok
D.6.A biztonsági rendszer használata
AccessController vagy SecurityManager
D.7.Aláírt és őrzött objektumok
D.7.1.őrzött objektumok
D.7.2.Aláírt objektumok
D.8.JAAS - Java Authentication and Authorization Service API
D.8.1.Authentikáció
JAAS Konfiguráció
D.8.2.Authorizáció
E.Kriptográfiai eszközök
E.1.Kriptográfiai alapok
E.1.1.Rejtjelezés
E.1.2.Aszimmetrikus rendszerek
E.1.3.Digitális aláírások
E.1.4.Hash-függvények
E.1.5.Nyilvános kulcsok hitelessége
E.1.6.Véletlenszám-generátorok
E.2.JCA - Java Cryptography Architecture
E.3.Szolgáltatók
E.3.1.Meghajtóosztályok
Esettanulmány -- digitális aláíró program
E.3.2.A Provider osztály
E.3.3.A Security osztály
E.3.4.A SUN szolgáltató
E.4.JCE - Java Cryptography Extension
E.4.1.Meghajtóosztályok
Esettanulmány -- variációk rejtjelezésre
E.4.2.Rejtjelezett objektumok és adatfolyamok
E.4.3.A SunJCE szolgáltató
E.5.Kanonikus nevek és attribútumok
E.5.1.Hash-algortimusok
E.5.2.Kulcs- és paramétergenerálás
E.5.3.Digitális aláírásra használható algoritmusok
E.5.4.Pszeudóvéletlenszám-generátorok
E.5.5.Tanúsítványtípusok
E.5.6.Kulcsadatbázis-típusok
E.5.7.Rejtjelezés
Algoritmusok
Használati módok
Kitöltési sémák
E.5.8.Kulcscsere
E.5.9.Kulcsok létrehozása
E.5.10.Algoritmus paraméterek
E.5.11.MAC Algoritmusok
E.5.12.Szolgáltatások attribútumai
F.Perzisztencia
F.1.A perzisztencia fogalma
F.2.Példa a perzisztencia megvalósítására
F.3.Az Object Serialization programozói interfész
F.3.1.Verziók
F.3.2.Az adatcsatorna--protokoll verziói
F.3.3.Biztonsági megfontolások
F.3.4.Példa szerializáció használatára
F.4.Perzisztens mezők
F.5.Helyettesítés
F.6.Megjegyzések
G.Adatbázis-programozás
G.1.JDBC meghajtóprogramok
G.1.1.Két- és háromrétegű adatbázis-elérési modell
G.1.2.JDBC-nek megfelelő meghajtóprogramok
G.2.ODBC--JDBC
G.3.Továbbfejlesztési tervek
G.4.A JDBC használata
G.4.1.Fordítás
G.4.2.Futtatás
G.5.Meghajtóprogramok kezelése
G.5.1.A meghajtóprogram kiválasztása
G.5.2.Meghajtóprogramok regisztrálása
G.6.Kapcsolattartás az adatbázissal
G.6.1.Adatbázis-URL-ek
G.6.2.Kapcsolat felvételének hagyományos módja
G.6.3.Kapcsolat felvételének ajánlott módja
Kapcsolatok újrahasznosítása
G.6.4.Tranzakciókezelés
Tranzakció-izolációs szintek
Globális tranzakciók
G.6.5.Információ a kapcsolatról
G.6.6.Hibakezelés
G.6.7.Kapcsolat lezárása
G.7.JDBC típusok
G.7.1.A JDBC típus használata
G.7.2.SQL -- Java típusmegfeleltetés
CHAR, VARCHAR és LONGVARCHAR
DECIMAL és NUMERIC
BINARY, VARBINARY és LONGVARBINARY
BIT, BOOLEAN
Egész számok
Lebegőpontos számok
Dátum/idő
Hivatkozás
G.7.3.SQL3 adattípusok
BLOB/CLOB
ARRAY
REF
Az SQL NULL kezelése
G.7.4.Felhasználói SQL adattípusok
Paraméteres (DISTINCT) felhasználói SQL típus
Strukturált (STRUCT) felhasználói SQL típus
Felhasználói SQL adattípusok Java megfeleltetése
G.7.5.Adatbázisbeli Java objektumok
G.8.SQL utasítások végrehajtása
G.8.1.A Statement interfész
Statement létrehozása
Statement végrehajtása
Statement megszakítása
Statement befejeződése
Escape-szintaxis használata
G.8.2.A PreparedStatement interfész
PreparedStatement létrehozása
PreparedStatement végrehajtása
Bemenő paraméterek típusának lekérdezése
Bemenő paraméterek értékének megadása
Nagyméretű bemenő paraméterek megadása
G.8.3.A CallableStatement interfész
CallableStatement létrehozása
CallableStatement végrehajtása
Kimenő paraméterek értékeinek lekérdezése
G.9.SQL utasítások kötegelt végrehajtása
G.9.1.Kötegelt végrehajtás előkészítése
G.9.2.Kötegelt végrehajtás indítása
G.9.3.Hibakezelés kötegelt végrehajtás esetén
G.9.4.Példa kötegelt végrehajtásra
G.10.Eredménytáblák kezelése
G.10.1.Eredménytábla típusok
G.10.2.Eredménytábla létrehozása
G.10.3.Eredménytábla elérésének optimalizálása
G.10.4.Navigálás az eredménytáblában
G.10.5.értékek beolvasása
G.10.6.értékek módosítása
G.10.7.új sor beszúrása
G.10.8.Sor törlése
G.10.9.Változások észlelése
G.10.10.Eredménytábla lezárása
G.11.Önálló eredménytáblák
G.11.1.Adatforrás megadása
G.11.2.Eredménytábla feltöltése
G.11.3.Eredménytábla használata
G.11.4.Eredménytábla események
G.11.5.Önálló eredménytábla megvalósítások
Önálló JDBC táblák
Memória táblák
Hálózati táblák
Szűrt táblák
Önálló táblák összekapcsolása
G.12.Példa
H.JavaBeans - Szoftver-komponensek
H.1.Szoftver-komponensek
H.1.1.Komponensek és konténerek
H.1.2.Elemzés és feltárás
H.1.3.Az interfész és tulajdonságok
H.1.4.Perzisztencia
H.1.5.Események
H.1.6.Vizuális tervezés
H.2.Példa vizuális fejlesztőeszközre: NetBeans
H.2.1.Letöltés és installálás
H.3.Tulajdonságok
H.3.1.Hogyan tehetünk egy beant testreszabhatóvá
H.3.2.Indexelt tulajdonságok
H.3.3.Kötött és vétózható tulajdonságok
Kötött tulajdonságok
Vétózható tulajdonságok
Egyéb elnevezési konvenciók
H.3.4.Példa - SmileyBean
A bean használata
A bean tesztelése - előkészületek
A bean tesztelése - tulajdonságok
A bean tesztelése - kötött tulajdonságok
A bean tesztelése - vétózható tulajdonságok
H.4.Beanek és az eseménykezelés
H.4.1.Saját eseménytípus létrehozása
H.5.Testreszabás
H.5.1.A testreszabás eszközei
H.5.2.Elnevezési konvenciók
H.5.3.BeanInfo interfész -- mit tud a bean?
H.5.4.Saját tulajdonságszerkesztő
H.5.5.A Customizer interfész
H.5.6.Bean konténerek és a testreszabás
H.5.7.Bean feltárás: az Introspector osztály
H.5.8.A BeanInfo interfész használata
Példa a BeanInfo implementálására
H.5.9.Példa tulajdonságszerkesztőre
H.6.Beanek a Java 2-ben (Glasgow)
I.Swing
I.1.Modellek használata
I.2.Megjelenítés
I.2.1.A megjelenítés nyomkövetése
I.2.2.A megjelenítést vezérlő programszál
I.2.3.Megjelenítés stílusának megváltoztatása
I.2.4.Komponens-tulajdonságok állítása
I.2.5.Ikonok megjelenítése
I.3.Műveletek definiálása
I.3.1.Billentyűparancsok használata
I.3.2.Segédszövegek megjelenítése
I.3.3.A SwingTeszt példaprogram
I.3.4.A PaintTeszt példaprogram
I.4.Események
I.4.1.Időzítők használata
I.4.2.A TimerTeszt példaprogram
I.5.A Swing komponensek ősosztálya
I.5.1.Keretek használata
I.5.2.A BorderTeszt példaprogram
I.5.3.Beviteli ellenőrzés
I.6.A legfelső Swing konténer
I.6.1.A GlassPaneTeszt példaprogram
I.7.Felsőszintű Swing konténerek
I.7.1.Swing appletek
I.7.2.Ablakok
I.7.3.Belső ablakok
I.7.4.Párbeszédablakok
Beviteli dialógusdoboz
Színkiválasztás
Fájlkiválasztás
I.7.5.A DialogusTeszt példaprogram
I.8.Konténerek
I.8.1.Elrendezési stratégiák
I.8.2.A legegyszerűbb konténer
I.8.3.A BoxTeszt példaprogram
I.8.4.Panel
I.8.5.Görgethető panel
Görgethető tartományok
I.8.6.A JScrollPaneTeszt példaprogram
I.8.7.Kettéosztható panel
I.8.8.A JSplitPaneTeszt példaprogram
I.8.9.Többoldalas panel
I.8.10.A JTabbedPaneTeszt példaprogram
I.8.11.Többrétegű panel
I.8.12.Belső ablakokat tartalmazó panel
I.8.13.A JInternalFrameTeszt példaprogram
I.8.14.Segédeszköz panel
I.8.15.A JToolBarTeszt példaprogram
I.9.Swing felületelemek
I.9.1.Címke
I.9.2.Nyomógomb
Gombok ősosztálya
Gombok adatmodellje
I.9.3.Kétállapotú gomb
I.9.4.Kiválasztható gomb
I.9.5.Rádiógomb
I.9.6.A GombTeszt példaprogram
I.9.7.Szövegmezők
Szövegkomponensek adatmodellje
Beviteli mezők
Jelszóbeviteli mezők
Többsoros beviteli mezők
Formázott beviteli mezők
I.9.8.A SzovegTeszt példaprogram
Dokumentummezők
I.9.9.Lista
Listák adatmodellje
Listák kiválasztási modellje
Listaelemek megjelenítése
I.9.10.Legördíthető lista
Legördíthető listák adatmodellje
Módosítható legördíthető lista
I.9.11.Pörgethető lista
Pörgethető listák adatmodellje
I.9.12.A ListaTeszt példaprogram
I.9.13.Táblázat
Táblázatok oszlopai
Táblázatok fejléce
Táblázatok adatmodellje
Táblázatok oszlopmodellje
Táblázat adatainak megjelenítése
Táblázat adatainak szerkesztése
I.9.14.A JTableTeszt példaprogram
I.9.15.Fastruktúrák
Fastruktúrák adatmodellje
Fapontok reprezentációja
Fastruktúrák kiválasztási modellje
Fastruktúrák megjelenítése
Fastruktúra adatainak szerkesztése
I.9.16.A JTreeTeszt példaprogram
I.9.17.Görgetősáv
értéktartományok modellje
értékkiválasztó görgetősáv
I.9.18.állapotjelző
Végrehajtás haladásának nyomkövetése
Fájlfeldolgozás haladásának nyomkövetése
I.9.19.A TartomanyTeszt példaprogram
I.10.Swing menük
I.10.1.Menüpontok
Megjelölhető menüpontok
Csoportokba szervezhető menüpontok
Elválasztó vonalak
I.10.2.Menütípusok
Felbukkanó menük
Normál menük
Menüsorok
I.10.3.A MenuTeszt példaprogram
I.11.A Swing további lehetőségei
I.11.1.Segédmetódusok gyűjteménye
I.11.2.Drag & Drop
I.11.3.A DnDTeszt példaprogram
J.Az objektumorientált tervezés áttekintése
J.1.Bevezetés
J.2.Alapfogalmak
J.2.1.Mit tekintünk objektumnak?
J.2.2.Osztály
J.2.3.Kapcsolatok
J.2.4.Öröklődés
J.2.5.Többszörös és ismételt öröklődés
J.3.Programtervezés
J.3.1.Fő lépések
J.3.2.Analízis
A feladat szöveges megfogalmazása, vagy ennek elkérése a megrendelőtől.
Statikus modell készítése
Dinamikus modell készítése
Iterálás
J.3.3.Rendszertervezés
J.3.4.Osztálytervezés
Műveletek meghatározása, specifikálása
Műveleteket megvalósító algoritmusok meghatározása
Adattagok elérésének optimalizálása
A rendszertervezés során meghatározott vezérlési stratégia megvalósítása
Az osztálystruktúra finomítása, az öröklődés erősebb kihasználása
Objektumkapcsolatok megtervezése
Attribútumok reprezentációjának megválasztása
Osztályok és kapcsolatok implementációs modulokba sorolása
J.3.5.Implementálás
K.Tervezési minták
K.1.Tervezési minták leírása
K.2.Sablonmetódus
Alapötlet
Esettanulmány
Alkalmazhatóság
Felelősségek és együttműködés
Kapcsolódó minták
K.3.Gyártó metódus
Alapötlet
Esettanulmány
Alkalmazhatóság
Felelősségek és együttműködés
Kapcsolódó minták
K.4.Iterátor
Alapötlet
Esettanulmány
Alkalmazhatóság
Felelősségek és együttműködés
Kapcsolódó minták
K.5.Toldalék
Alapötlet
Esettanulmány
Alkalmazhatóság
Felelősségek és együttműködés
Kapcsolódó minták
K.6.Homogén összetétel
Alapötlet
Esettanulmány
Alkalmazhatóság
Felelősségek és együttműködés
Kapcsolódó minták
K.7.Stratégia
Alapötlet
Esettanulmány
Alkalmazhatóság
Felelősségek és együttműködés
Kapcsolódó minták
K.8.Adapter
Alapötlet
Esettanulmány
Alkalmazhatóság
Felelősségek és együttműködés
Kapcsolódó minták
L.A Java nyelvről C++ programozóknak
L.1.Az objektummodellek különbözősége
L.2.Az egyes nyelvi elemek különbségéről
L.2.1.Absztrakció és paradigma
L.2.2.A main metódus
L.2.3.Kommentek
L.2.4.Előfordító
L.2.5.Fejállományok (headerek)
L.2.6.Primitív típusok
L.2.7.Mutatók, referenciák
L.2.8.Operátorok, kifejezések
L.2.9.Const
L.2.10.Argumentumok alapértelmezett értéke
L.2.11.Utasítások
L.2.12.Goto és címkék
L.2.13.Osztályok, interfészek és öröklődés
L.2.14.Hozzáférési kategóriák
L.2.15.Friend
L.2.16.Struktúrák
L.2.17.Felsorolási típus
L.2.18.Bitmezők, uniók
L.2.19.String
L.2.20.Hatókör operátor
L.2.21.Névterek (namespace)
L.2.22.RTTI, típuskényszerítések
L.2.23.Kivételkezelés
L.2.24.Template
M.Kiegészítések a biztonsághoz
M.1.Biztonsági konfigurációs fájl
M.2.Kulcsadatbázis
M.2.1.A kulcsadatbázis védelme
M.2.2.Kulcsadatbázis karbantartása (keytool)
M.2.3.JAR fájlok hitelesítése (jarsigner)
M.3.Biztonsági szabályzat
M.3.1.Biztonsági szabályzatok készítése (policytool)
M.3.2.Példa biztonsági szabályzatfájlra
M.4.Esettanulmány: aláírt applet
M.4.1.Az aláíró személyazonosságának elkészítése
Kulcspár generálás
Önaláírt tanúsítvány
Hitelesítő hatóság által kiadott tanúsítvány
Biztonsági megfontolások
M.4.2.Aláírt applet
M.4.3.Aláírt appletek használata
M.5.Jogosultságok és biztonsági kockázataik
M.5.1.java.security.AllPermission
M.5.2.javax.sound.sampled.AudioPermission
play
record
M.5.3.javax.security.auth.AuthPermission
doAs
doAsPrivileged
getSubject
getSubjectFromDomainCombiner
setReadOnly
modifyPrincipals
modifyPublicCredentials
modifyPrivateCredentials
refreshCredential
destroyCredential
createLoginContext.bejegyzésnév
getLoginConfiguration
setLoginConfiguration
refreshLoginConfiguration
M.5.4.java.awt.AWTPermission
accessClipboard
accessEventQueue
createRobot
listenToAllAWTEvents
readDisplayPixels
showWindowWithoutWarningBanner
M.5.5.java.io.FilePermission
M.5.6.java.util.logging.LoggingPermission
control
M.5.7.java.net.NetPermission
setDefaultAuthenticator
requestPasswordAuthentication
specifyStreamHandler
M.5.8.javax.security.auth.PrivateCredentialPermission
M.5.9.java.util.PropertyPermission
M.5.10.java.lang.reflect.ReflectPermission
suppressAccessCheck
M.5.11.java.lang.RuntimePermission
createClassLoader
getClassLoader
setContextClassLoader
setSecurityManager
createSecurityManager
exitVM
shutdownHooks
setFactory
setIO
modifyThread
stopThread
modifyThreadGroup
getProtectionDomain
readFileDescriptor
writeFileDescriptor
loadLibrary.könyvtár neve
accessClassInPackage.csomag neve
defineClassInPackage.csomag neve
accessDeclaredMembers
queuePrintJob
selectorProvider
charsetProvider
M.5.12.java.security.SecurityPermission
createAccessControlContext
getDomainCombiner
getPolicy
setPolicy
getProperty.jellemzőnév
setProperty.jellemzőnév
insertProvider.szolgáltató
removeProvider.szolgáltató
setSystemScope
setIdentityPublicKey
setIdentityInfo
addIdentityCertificate
removeIdentityCertificate
printIdentity
clearProviderProperties.szolgáltató
putProviderProperty.szolgáltató
removeProviderProperty.szolgáltató
getSignerPrivateKey
setSignerKeyPair
M.5.13.java.io.SerializablePermission
enableSubclassImplementation
enableSubstitution
M.5.14.java.net.SocketPermission
M.5.15.javax.net.SSLPermission
setHostnameVerifier
getSSLSessionContext
M.5.16.java.sql.SQLPermission
setLog
N.Java3D
N.1.Bevezetés
N.2.A háromdimenziós számítógépes grafikáról
N.2.1.A modellezés
Poligon modellezés
Magasságmezők
Parametrikus felületek
Szorzatfelületek
NURBS felület, felületszobrászat
Konstruktív tömörtest geometria alapú modellezés
NURBS felület, felületszobrászat
Térfogati modellek
N.2.2.A képszintézis
A képszintézis lépései
Az árnyalási egyenlet egyszerűsített változata
N.2.3.Transzformációk
N.3.A Java3D felépítése
N.3.1.Színtér-gráf
N.3.2.Renderelési modellek
N.3.3.Megjelenítési modellek
N.4.A Java3D programozásáról
N.5.Kezdetek: HelloJava3D alkalmazás
N.6.Térbeli alakzatok elhelyezése és attribútumai
N.6.1.3D-s testek: Shape3D, GeometryArray
N.6.2.3D-s szöveg: Text3D
N.6.3.3D-s megjelenés: Appearance
N.6.4.Transzformációk
N.6.5.Textúrázás
N.7.A színtér-gráf rendszerezése
N.7.1.Csoportok: a Group csomópont
N.7.2.Osztott részgráfok
N.8.Kirajzolási alternatívák
N.8.1.Raster
N.8.2.A Java3D nézet modell programozása
N.9.Színtér elemek viselkedése
N.9.1.Viselkedési modell: Behavior csomópont
N.9.2.Interpolátorok
N.9.3.Különleges Behavior osztályok
N.9.4.Morph
N.10.Interakció a színtérrel
N.10.1.Kijelölés: Pick
N.10.2.Beviteli eszközök
N.11.A virtuális világ további elemei
N.11.1.Fényforrások
N.11.2.Háttér
N.11.3.Köd
N.11.4.Java3D hangforrások
N.11.5.Akusztikus jellemzők
N.12.A VecMath csomag
N.13.Szójegyzék
O.Memóriakezelés
O.1.A memóriakezelési és -hivatkozási modell
O.2.Típuskényszerítések és az instanceof operátor
O.3.A class-fájlok betöltéskori ellenőrzéséről
O.4.Tömbök
O.5.Paraméterátadás metódushíváskor
O.6.A "void *" és a függvénymutatók
O.7.Erős elérhetőség és a szemétgyűjtő mechanizmus
O.8.Gyenge hivatkozások és referencia-objektumok
O.8.1.A java.lang.ref csomag nyilvános osztályai
O.8.2.értesítés
O.8.3.A ReferenceQueue osztály metódusai
O.8.4.A Reference osztály metódusai
O.8.5.A gyenge referencia háromféle erőssége
O.8.6.A java.util.WeakHashMap osztály
O.9.A virtuális gép memóriafelhasználása
P.Csevegőprogram Java nyelven
P.1.A felhasználói felület váza (1. lépés)
P.2.Kliensváz kiegészítve eseménykezeléssel (2. lépés)
P.3.A kliens első változata (3. lépés)
P.4.A kommunikációs interfészek (4. lépés)
P.5.A kliensoldali kommunikációs objektum (5. lépés)
P.6.A végleges kliens (6. lépés)
P.7.A szerver első változata (7. lépés)
P.8.A szerver továbbfejlesztése (8. lépés)
P.9.A program futtatása és tesztelése
Q.XML
Q.1.Bevezetés az XML-be
Q.1.1.Speciális jelek használata
Q.1.2.Feldolgozási utasítások
Q.1.3.CSS Példa, az XML megjelenítése
Q.2.XML dokumentumok nyelvtana (DTD)
Q.2.1.Az elemek definiálása
Q.2.2.Entitások megadása
Q.2.3.Attribútumok definiálása
Q.2.4.Névtartományok
Q.3.XML Sémák
Q.4.Az XSL technológia
Q.4.1.Bevezetés az XSLT-be
Q.4.2.Példa az XSLT használatára
Q.5.Java és az XML
Q.6.A SAX használata Javából
Q.6.1.Hibakezelés SAX-szal
Q.7.A DOM használata Javából
Q.7.1.A DOM ábrázolás
Q.7.2.A DOM ábrázolás bejárása
Q.8.Névtartományok
Q.9.Az XSLT használata Javából
Q.10.XSLT kiterjesztése Javával
Q.11.Párhuzamosság
Q.12.Az XML további felhasználása Javaból
R.Az OMG IDL nyelv módosított BNF nyelvtana
S.A mobil Java
S.1.Bevezetés
S.2.Szabványok (Specifikációk)
S.2.1.Konfigurációk
S.2.2.Profilok
S.2.3.Kiegészítő csomagok
S.3.MIDP
S.4.Midletek
S.5.Fejlesztés menete
S.5.1.WTK
S.5.2.A JAD és a JAR fájlok
S.5.3.Feltöltés mobiltelefonra
Direkt kapcsolat
OTA - Over The Air
S.5.4.Készülékspecifikus emulátorok
S.5.5.Netbeans
S.5.6.Hatékony kód
S.6.Az osztályszerkezet madártávlatból
S.7.A felhasználói felület
S.7.1.Magasszintű osztályok
A Form osztály és elemei
A TextField és TextBox
A ChoiceGroup és List
Az Alert
Események kezelése
S.7.2.Alacsonyszintű osztályok
Információk a képernyőről
Rajzolás
Rajzolási tulajdonságok
Szövegek és képek
Eseménykezelés
S.8.Időzítés
S.9.Egyszerűsített adatkezelés: az RMS
S.9.1.Rekordok - Rekordtárolók
Rekordtárolók kezelése
Rekordok kezelése
Összetettebb rekordok
Egy példaprogram
S.10.J2ME hálózat
S.10.1.Generic Connection Framework
S.10.2.HttpConnection
S.10.3.SMS küldés, WMA 1.0
S.11.Fejlődési irányok
S.11.1.Gyártóspecifikus bővítések
S.11.2.A MIDP 2.0
 Irodalomjegyzék
 Tárgymutató


Copyright ©2008, Antal György, Balázs Iván József, Csepregi Szabolcs, Csizmazia Balázs, Csonka Ferenc, Csontos Péter, Dezső András, Dezső Balázs, Dévai Gergely, Fodor Szabina, Fornai Péter, Frohner Ákos, Kégli Zoltán, Kitlei Róbert, Kozsik Tamás, Lakatos Attila, Mészáros Mónika, Nyékyné Gaizler Judit, Pécsy Gábor, Porkoláb Zoltán, Riskó Gergely, Salamon András, Selmeci Attila, Szabó Richárd

Minden jog fenntartva.

Nyolcadik átdolgozott, bővített kiadás, 2008 december

A Szerzők és a Kiadó e könyv tartalmi és formai összeállítása során a legjobb tudásuk szerint jártak el. Ennek ellenére nem zárható ki, hogy a könyvben előfordulnak hibák. A könyv, illetve a benne levő ismeretanyag használatából közvetlen vagy közvetett módon származó károkért sem a Szerzők, sem pedig a Kiadó nem vállal felelősséget.

Ezen kiadvány egészének vagy egy részének a másolása, reprodukálása (bármilyen formában), valamint lefordítása más nyelvekre kizárólag a Kiadó előzetes írásbeli hozzájárulásának birtokában engedélyezett.

A UNIX az X/Open bejegyzett védjegye.
A Java a Sun Microsystems, Inc. védjegye.
A Windows a Microsoft, Corp. védjegye.
A könyvben előforduló más védjegyek nevei nagy kezdőbetűkkel vannak írva, ha a Kiadónak tudomása van az adott védjegyről.

Összkiadás: ISBN 978-963-06-4092-3 ö
II. kötet: ISBN 978-963-06-4094-7

Kiadó: ELTE TTK Hallgatói Alapítvány
   Budapest
A könyv szerkesztése és szedése LaTeX-ben készült
Nyomtatta és kötötte az EFO Nyomda.
   Felelős vezető: Fonyódi Ottó
Borítóterv: Ruszkai Gábor
Példányszám: 3000.