Java alapk II.

Szoftverfejlesztés | Java
Nehézség: Haladó
Tanfolyam hossza: 3 nap

Lambda-kifejezések, Stream API, dátum- és időkezelés, összetett I/O, szálak, JDBC

CÉLOK
A tanfolyam az első rész anyagát mélyíti haladó témákkal, mint a lambda-kifejezések és a Stream API, vagy a szálkezelés. Tárgyaljuk továbbá az IO API használatát adatok írásához és olvasásához, valamint az idő- és dátum feldolgozását és az adatbáziskezelést is. A tanfolyamot elvégzett résztvevők gyakori problémákat egyszerű, gyorsan és hatékonyan tudnak megoldani a megismert eszköztár segítségével. Az anyagot alaposan elsajátító résztvevők sikeresen vághatnak neki a Java SE 8 Programmer II vizsgának, és ha már rendelkeznek a vizsga első részével, akkor ezzel megszerezhetik az Oracle Certified Professional, Java SE 8 Programmer minősítést.

TEMATIKA

• Lambda-kifejezések a Java nyelvben
– A funkcionális programozás alapelvei
– A funkcionális interfész fogalma
– A lambda-kifejezések szintaxisa
– Az osztálykönyvtár általános funkcionális interfészei: Predicate, Consumer, Function, Supplier, UnaryOperator
– Kétargumentumos funkcionális interfészek

• A Stream API
– A streamek használata és általános jellemzői
– Az Optional<T> használata
– Streamek létrehozása
– Köztes műveletek streameken: sorted(), distinct(), limit(), skip(), filter(), map(), flatMap(), peek()
– Terminális művelet streameken
– Elemek kiválogatása és feltétel kiértékelése a findFirst(), findAny(), allMatch(), anyMatch() és noneMatch() metódusokkal
– Gyakori redukciós műveletek, általános redukció
– Eredmények kigyűjtése kollekciókba, Collectorok használata
– Hatékonysági megfontolások
– Streamek támogatása saját adatforráshoz

• A Java 8 dátum- és időkezelő módszerei
– Dátumok és időpontok önálló és együttes kezelése a LocalDate, LocalTime és LocalDateTime osztályokkal
– Az Instant osztály használata
– Időszakok és időtartamok kezelése a Period és Duration osztályokkal Időzónák szerint nyilvántartott idő kezelése
– Időzónákkal és óraállítással kapcsolatos változások kezelése
– Idő és dátum formázása
– Kalkuláció dátumokkal és idővel, a TemporalUnit osztály.

• I/O műveletek az IO API-val
– Olvasás és írás a konzolról/konzolra
– Bináris I/O az InputStream és OutputStream interfészeken keresztül
– Szöveges I/O a Reader és Writer interfészeken keresztül
– A File osztály
– Fájlok írása és olvasása
– Pufferelt írás és olvasás
– Objektumok állapotának sorosítása, a Serializable interfész
– A sorosítás testre szabása
– A PrintWriter

• Szálkezelés
– Egyszerű szálkezelés, Runnable és Thread
– A Callable<T> és a Future<T>
– Thread poolok az ExecutorService osztállyal
– A szálkezeléssel kapcsolatos gyakori problémák: deadlock, livelock, éhezés, versenyhelyzet
– A synchronized kulcsszó
– Szálbiztos osztályok, kollekciók
– Atomi műveletek támogatása az osztálykönyvtárban
– Szinkronizáció a wait(), notify() és notifyAll() segítségével
– Szinkronizáció a CyclicBarrier osztállyal
– A CopyOnWriteArrayList használata
– Feladatok párhuzamosítása a fork-join megközelítéssel

• I/O műveletek a NIO API-val
– Fájlműveletek a Path és Files segítségével
– Aszinkron I/O műveletek csatornákkal és pufferekkel
– Karakterkódolások közti konverzió

• Adatbáziskezelés JDBC-vel
– A JDBC architektúrája, SPI és API
– A JDBC alapvető interfészei: Driver, Connection, Statement, ResultSet
– Kapcsolat felépítése a DriverManager és a JDBC URL segítségével
– Lekérdezések futtatása, az eredmények feldolgozása, a kapcsolat lezárása

• Az alkalmazásfejlesztéshez kapcsolódó járulékos feladatok
– Internalizáció
– Lokalizáció
– Properties fájlok használata, szövegliterálok lefordítása
– Naplózás
– Terjesztés JAR formátumban
– A Java WebStart használata