Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    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