Java-technológia

A tantárgy angol neve: Java Technology

Adatlap utolsó módosítása: 2016. szeptember 26.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Villamosmérnöki szak
Gazdaságinformatikus szak
Szabadon választható tantárgy
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIHIJV37   4/0/0/v 4  
3. A tantárgyfelelős személy és tanszék Dr. Wiandt Bernát,
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

Dr. Simon Vilmos docens
HIT
Dr. Bokor László
adjunktus HIT
 Wiandt Bernát
 tud. segédmunkatárs
 HIT
 Kőkuti András
 doktorandusz HIT
 Varga Norbert
 doktorandusz HIT
5. A tantárgy az alábbi témakörök ismeretére épít

C programozás, objektum-orientált programozás

6. Előtanulmányi rend
Kötelező:
NEM ( TárgyTeljesítve("BMEVIHI9037") )
ÉS
NEM
(Training.Code=("5N-A8")
VAGY
Training.Code=("5N-M8"))

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:
Programozás alapjai 1.
Tematikaütközés miatt a tárgyat csak azok vehetik fel, akik korábban nem hallgatták a következő tárgyakat: BMEVIHI9037 Java-technológia, BMEVIIIAB00 A programozás alapjai 3., BMEVIIIJV51 Integrált fejlesztés Java platformon

7. A tantárgy célkitűzése A tantárgy célja, hogy a hallgatók átfogó ismereteket szerezzenek a Java programozási nyelvről és a hozzá kapcsolódó technológiákról.
8. A tantárgy részletes tematikája A tantárgy a korábbi "Rendszerfejlesztés Java környezetben" című tárgy közvetlen utóda.


Előadások
1.    Java alapok, bevezető, típusok, operátorok, precedencia, utasítások, blokkok, ciklusok. Autoboxing, unboxing, cast-ok (implicit / explicit). Objektumok, osztályok, interfészek. Package-ek, kódolási stílus.
2.    Tömbök, elemek felsorolása, tömbök hatékony kezelése (java.util.Arrays), enumerációk, kivételkezelés (java7 újdonságok), saját kivételtípus, kivételek csomagolása, programok a fájlrendszerben.
3.    Java generikus osztályok, genericitás és öröklés, kovariancia, invariancia, wildcard típusparaméterek, alsó és felső korlátok típusparaméterekre, korlátok felhasználása, típustörlés, fordítási / futási idejű típusok, java7 diamond operátor.
4.    Java kollekciók, kollekció-keretrendszer, interfészek: Collection, Iterator, List, ListIterator, Set, SortedSet, Map, SortedMap. Tipikus implementációk: array, linked, hash módosítók. Kollekciók kezelése (java.util.Collections): algoritmusok, mini implementációk, burkolók.
5.    Osztálybetöltés: delegáció mechanizmusa, tipikus osztálybetöltő hierarchia, extension mechanism, classpath fogalma. Properties / Preferences: system properties, properties fájlformátum, preferences tárolás, eseménykezelők. Virtuális gépek, a platform fejlesztőeszközei.
6.    Java I/O, stream fogalmának ismertetése, karakteres / bináris I/O. Reader, Writer, InputStream, OutputStream interfész, implementációk, burkolók. File kezelés, karakteres / bináris felhasználás. Pipe, memória alapú I/O, átjárás byte-os és karakteres csatornák között, szűrők, encoding. Objektumok írása / olvasása, szerializáció.
7.    Szemétgyűjtés: stratégiák (copying, mark sweep compact, G1), stratégiák kombinációja, szemétgyűjtés ütemezése. Integrált fejlesztői környezetek, platform profiler. Referencia burkolók: soft, weak, phantom, felhasználási esetek, összehasonlítás a finalize metódussal.
8.    Szálkezelés: kölcsönös kizárás, szinkronizálás, monitorok, jelzések küldése, kezelése. Szinkronizációs primitívek, szálbiztos kollekciók, speciális szálosztályok (java.util.concurrent). Executor framework: feladattípusok, feladatok ütemezése, executorok legyártása.
9.    Hálózati kapcsolatok kezelése, IPv4 / IPv6 címek, socket címek, névfeloldás, UDP  csomagok forgalmazása, TCP stream kezelése, URI / URL kezelése, URLConnection használata. Proxy beállítása, Cookie objemtumok használata, egyszerű HTTPServer létrehozása.
10.    Java GUI alapfogalmak, AWT és SWING könyvtárak. AWT osztályok ismertetése, Window, Frame, LayoutManager. AWT eseménykezelés, menük, dialógusok. Swing koncepció, MVC, szálkezelés, osztályhierarchia, különbségek az AWT-hez képest. Swing look and feel, komplex komponensek, JavaFX, egyéb GUI keretrendszerek, kitenkintés.
11.    XML formátum ismertetése, névterek, jól formázott / érvényes dokumentumok, XSLT, DOM és SAX közti elvi különbségek. SAX API, esemény alapú XML feldolgozás. Parser, ParserFactory, InputSource osztályok, fontosabb kivételek. DOM API, DocumentBuilderFactory, Document és Node interfészek, dokumentum manipulálása, attribútumok kezelése.
12.    Adatbáziskezelés (JDBC): osztályhierarchia, meghajtók, kapcsolat felépítése. SQL utasítások végrehajtása, eredmény feldolgozása, hibák kezelése. Prepared statement, stored procedure, tranzakciókezelés.
13.    Reflection fogalma, használt osztályok: Package, Class, Method, stb. Class objektumok előállítása. Konstruktorok, metódusok hívása, módosítók kezelése, mezők manipulálása, dinamikus proxy létrehozása. Reguláris kifejezések. Naplózás, Logger osztályok hierarchiája, Handler osztályok ismertetése, naplózási szintek, log4J.
14.    Tervezési minták, abstract factory, proxy, chain of responsibility, adapter. Effective java, néhány felhasználási eset áttekintése, immutábilis osztályok létrehozása, singleton minta, kivételek burkolásának fontossága. Vizsgafelkészítés, példafeladatok megoldása.


9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás
10. Követelmények Egy nagy házi feladat elkészítése, melynek része a feladat specifikációja, a működőképes program, valamint annak Javadoc dokumentációja. A feladat beadásának határideje a szorgalmi időszak vége. A házi feladat elfogadható szintű elkészítése a vizsgára bocsátás feltétele.
A félév lezárásának módja: írásbeli vizsga. A félévi osztályzat a vizsgán elért osztályzattal egyezik meg. A félév teljesítésének feltétele a vizsgán elért legalább elégséges osztályzat.
a.       A szorgalmi időszakban: házi feladat
b.       A vizsgaidőszakban: írásbeli vizsga
Elővizsga: -

11. Pótlási lehetőségek A házi feladat különeljárási díj ellenében a pótlási héten pótolható
12. Konzultációs lehetőségek

Az előadások után, illetve a hallgatókkal előzetesen egyeztetett időpontokban.

13. Jegyzet, tankönyv, felhasználható irodalom Kathy Sierra, Bert Bates, Head First Java, 2nd Edition, 2005
Bruce Eckel, Thinking in Java (4th Edition), 2006
Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson, Head First Design Patterns, 2004
Joshua Bloch, Effective Java (2nd edition), 2008.
Az előadások fóliái a hallgatók számára elektronikus formában elérhetően.
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra56
Félévközi készülés órákra6
Felkészülés zárthelyire0
Házi feladat elkészítése20
Kijelölt írásos tananyag elsajátítása28
Vizsgafelkészülés10
Összesen120
15. A tantárgy tematikáját kidolgozta

Név:

Beosztás:

Tanszék, Int.:

Dr. Simon Vilmos
egyetemi docens

HIT

Wiandt Bernát

tud. segédmunkatárs

HIT