Προχωρημένος προγραμματισμός με τη γλώσσα Java
© Γιάννης Κωστάρας
Πίνακας περιεχομένων
Κεφάλαιο 1 - λ-λογισμός, ροές και Ανταποκρίσιμος προγραμματισμός
- Εισαγωγή
- λ-εκφράσεις και αναφορές μεθόδων (method references)
- Ροές (streams)
- Filter-Map-Reduce
- Infinite και Parallel Streams
- Ανταποκρίσιμος (Reactive) προγραμματισμός
Κεφάλαιο 2 - Πολυνηματικός προγραμματισμός (Concurrency) και Απόδοση
- Παράλληλος προγραμματισμός, νήματα (threads)
- Κύκλος ζωής ενός νήματος
- Δημιουργία νημάτων μέσω των κλάσεων Thread, Runnable, Executor
- Συγχρονισμός νημάτων (Locks, synchronized, conditions)
- Atomic counters
- Concurrent collections
- Java Memory Model
- Συλλέκτες σκουπιδιών (Garbage Collectors)
- Εργαλεία μέτρησης της απόδοσης εφαρμογών Java
Κεφάλαιο 3 - Γραφικές εφαρμογές
- Abstract Window Toolkit (AWT) (μόνο συνοπτικά)
- Δημιουργία γραφικών διεπαφών χρήστη με το Swing
- Δομή μιας εφαρμογής Swing
- Δημιουργία πρωτότυπου με το NetBeans Mattisse
- Layout Managers και widgets
- Event Handling
- Δημιουργία μιας εφαρμογής σε Swing
- Δημιουργία γραφικών διεπαφών χρήστη με τη JavaFX
- Δομή μιας εφαρμογής JavaFX
- Δημιουργία πρωτότυπου με το JavaFX SceneBuilder
- Layout Managers και widgets
- Event Handling
- Δημιουργία μιας εφαρμογής σε JavaFX
Κεφάλαιο 4 - Βάσεις δεδομένων (JPA)
- Τρόποι επικοινωνίας με ΒΔ. JDBC
- Object Relational Mapping (ORM)
- JPA annotations
- Σχέσεις
- JPAStreamer
- Στρατηγικές ανάκτησης δεδομένων (fetching strategies)
Κεφάλαιο 5 - Δικτυακός Προγραμματισμός
- Εισαγωγή στο δικτυακό προγραμματισμό
- Sockets
- NIO.2 asynchronous channels
- Netty
- HTTP/2