Java SE haladó (T360)
A cél a Java nyelven történő programozás haladó szintjének elsajátítása, a Java API részleteinek megismerése. A képzés számos gyakorlati feladatot tartalmaz, ezek megvalósításához IntelliJ IDEA fejlesztőeszközt alkalmazunk, Maven alapú projektekben.
- Bevezetés
- Java SE haladó handout
- Belső osztályok
- Generikusok használata, diamond operátor
- Az equals() és hashCode() metódusok
- List, ArrayList kontra LinkedList
- Set
- Queue
- Map
- Autoboxing használata kollekcióknál
- Kollekciók összefoglalás
- Kollekciók gyakorló kvíz
- Bejárás
- A Comparator és Comparable interfészek
- Keresés
- Rendezés
- Collections osztály (keresésen, rendezésen felüli metódusok)
- A clone() metódus, deep clone
- Műveletek kollekciókkal összefoglalás
- Műveletek kollekciókkal gyakorló kvíz
- Projektfeladat - Webáruház
- A feladatkiírás áttekintése
- A Product osztály és a ProductCategory enum létrehozása
- A Customer osztály és a CustomerCategory enum létrehozása
- A Store osztály létrehozása
- A CustomerService osztály létrehozása
- A Cart osztály létrehozása
- Az Order osztály létrehozása
- WebShop osztály, a vásárlás folyamata
- Webshop osztály, lekérdező metódusok
- Bevezetés a lambda kifejezések használatába
- Bevezetés a lambda kifejezések használatába - gyakorlat
- Bevezetés az Optional osztály használatába
- Bevezetés a streamek használatába
- Bevezetés a streamek használatába - gyakorlat - források
- Bevezetés a streamek használatába - gyakorlat - közbülső és lezáró műveletek
- Programozási tételek streamek használatával - gyakorlati feladatok
- Programozási tételek streamek használatával - megoldás
- Lambda kifejezések
- Az Optional osztály használata
- Comparator módosítások
- Streamek
- Közbenső műveletek
- Primitívek használata streamekben
- Collectorok
- Lambda kifejezések és streamek összefoglalás
- Lambda kifejezések és streamek gyakorló kvíz
- Dátumok kezelése Java 8-tól
- Period
- Duration
- Időzónák és nyári időszámítás
- Régi dátum- és időkezeléssel kapcsolatos típusok
- Reguláris kifejezések
- Locale osztály nyelv megadására
- ResourceBundle osztály nyelvi fordítások tárolására
- MessageFormat paraméterezett nyelvi fordítások használatára
- Nagy számok kezelése
- Szöveges állomány beolvasása
- String kiírása szöveges állományba
- Bájtok beolvasása fájlból és kiírása fájlba
- String olvasása Readerrel
- String írása Writerrel
- Különböző típusok írása PrintWriterrel
- Kiírás Stringbe StringWriterrel
- Bájtok olvasása InputStreammel
- String olvasása classpathról
- Bájtok írása OutputStreammel
- Adatok írása OutputStreamre, és olvasás
- Bájtok írása tömörítéssel
- Konvertálás a típusok között
- Files osztály használata
- Fájlkezelés tesztelése
- Fájl olvasása Scannerrel
- Properties állományok
- Generikus osztályok
- Generikus interfészek
- Generikus metódusok
- Bevezetés a reflection használatába
- Osztályokkal kezelése reflectionnel
- Attribútumok reflectionnel
- Metódusok kezelése reflectionnel
- Konstruktorok kezelése reflectionnel
- Osztály referencia a neve alapján
- Generikusok és tömbök használata reflectionnel
- Bevezetés az annotációk használatába
- Részletesen az annotációkról
- Ismételhető annotációk
- JVM
- Third party library-k
- Naplózás
- Bevezetés a tervezési minták használatába
- S.O.L.I.D. elvek
- Singleton tervezési minta
- Builder tervezési minta
- Template method tervezési minta
- Simple factory tervezési minta
- Állapottér reprezentáció
- Swing
- JavaFX
Az oktatóról
Viczián István vagyok, Java fanatikusként fejlesztek, oktatok, blogot írok, rendezvényeket szervezek és konferenciákra járok. A Debreceni Egyetemen végeztem programtervező matematikusként, jelenleg a Training360-nál tartok oktatásokat. 1998 óta foglalkozom objektumorientált programozással és szoftverfejlesztéssel, kiemelt szakterületem a Java és Java EE alkalmazásfejlesztés. Vezető fejlesztőként, architektként dolgoztam/dolgozom kormányzati, banki, telekommunikációs és energetikai fejlesztési projektekben. Szakmai blogot is írok JTechLog néven. Szabadidőmben sokat túrázok, próbálom felfedezni Magyarország rejtett kincseit.