Kurzusleírás
Bevezetés a Java-be
- A Java története és fejlődése
- Java verzió és frissítés áttekintése
- Az Java 17. újdonságai
- Java Fejlesztőkészlet (JDK 17) és IDE beállítása
Java A program felépítése
- Egy egyszerű Java program írása
- Java szintaxis áttekintése
- Java alkalmazások fordítása és futtatása
Adattípusok és változók
- Primitív adattípusok és burkoló osztályok
- Változók és állandók deklarálása
- Típusátalakítás és öntés
Operátorok itt: Java
- Aritmetikai, relációs, logikai és bitenkénti operátorok
- Operátori prioritás és asszociativitás
Vezérlési folyamat kimutatások
- Feltételes utasítások (ha-else, switch)
- Hurkolásos konstrukciók (for, while, do-while)
- Továbbfejlesztett kapcsolókifejezések (Java 17 funkció)
Bevezetés az OOP-koncepciókba
- Osztályok és tárgyak
- Beágyazás, öröklődés, polimorfizmus és absztrakció
Osztályok és objektumok létrehozása
- Objektumok deklarálása és inicializálása
- Ez a kulcsszó
- Konstruktorok (alapértelmezett és paraméterezett)
Öröklés
- Osztályok kiterjesztése (kulcsszó kiterjesztése)
- Módszer felülbírálása és szuper kulcsszó
- Absztrakt osztályok és módszerek
Polimorfizmus
- Fordítási idő vs. futásidejű polimorfizmus
- A módszer túlterhelése és felülírása
Interfészek
- Interfészek meghatározása és megvalósítása
- Funkcionális interfészek és alapértelmezett módszerek
Rekordosztályok (Java 17 funkció)
- Az Java-ben található rekordok értelmezése 17
- Hogyan egyszerűsítik le a rekordok az adatok beágyazását
Általánosságok itt: Java
- A típusparaméterek megértése
- Általános osztályok, metódusok és interfészek
- Korlátozott típusok és helyettesítő karakterek
Kivételkezelés
- A kivételek típusai (jelölt és nem bejelölt)
- Próbáld meg-elkapni-végre blokkolni
- Kivételek dobás és fogás
- Egyéni kivételek létrehozása
Java Gyűjtemények Framework
- List, Set, Map és Queue felületek
- Népszerű megvalósítások: ArrayList, HashMap, HashSet
- Iterátorok és továbbfejlesztett ciklusokhoz
Lambda Expressionok és funkcionális Programming
- Bevezetés a lambda kifejezésekbe
- Szintaxis és használat
- Funkcionális interfészek
Stream API
- Az Java adatfolyam áttekintése
- Streamelési műveletek (szűrés, leképezés, kicsinyítés)
- Párhuzamos adatfolyamok és teljesítménymegfontolások
Lezárt osztályok
- A lezárt osztályok meghatározása és használata
- Engedélyezett alosztályok és korlátozások
Mintaegyeztetés az instanceof-hoz (Java 17 jellemző)
- Típusellenőrzés egyszerűsítése mintaillesztéssel
Szövegblokkok
- Munka többsoros szövegblokkokkal az Java-ben
- Összehasonlítás a hagyományos húrkezeléssel
Feljegyzések és sorozatosítás fejlesztései
- Sorozatosítás és visszafelé kompatibilitás
- Hogyan javítják a rekordok a kód olvashatóságát és karbantartását
Szolgáltatások elavulása és eltávolítása
- Elavult API-k itt: Java 17
- Elavult funkciók eltávolítása
Kapcsolja Expressionjavításokat
- Mintaillesztés a kapcsolóban
- Switch kifejezések használata tisztább kódhoz
Foreign Function & Memory API (inkubátor)
- Az inkubátor modul áttekintése
- Munka natív kóddal az Java-ben
Java Modulrendszer (Project Jigsaw)
- A modulok bemutatása itt: Java
- Modulok létrehozása és használata
- Modulleírók és modul-info.java
- A modularizáció előnyei
Párhuzamosság és többszálúság
- Bevezetés a szálakba és a többszálú kezelésbe
- Futtatható felület és hívható felület
- Szinkronizálás, zárak és menetbiztonság
Aszinkron Programming a CompetableFuture-rel
- Aszinkron kód írása
- A CompetableFuture használata a nem blokkoló műveletekhez
Az Java alkalmazások telepítése
- JAR fájlok létrehozása és végrehajtása
- Alkalmazások csomagolása és forgalmazása Java
- Bevezetés a GraalVM-be (opcionális)
Bevált gyakorlatok és kódoptimalizálás
- Hatékony és karbantartható Java kód írása
- A teljesítmény gyakori buktatói és azok elkerülése
- Kódrefaktorálási technikák
Összegzés és a következő lépések
Követelmények
- Programozási alapismeretek
Közönség
- Szoftverfejlesztők
- Programozók