Date | Summary |
2019.11.9 |
|
2019.11.10 |
- Part I: generics
- Generics
- Supplementary materials for generics
- Pankaj, Java generics example tutorial – generic method, class, interface, JournalDev, 2018
- generics tutorial, guidelines for wildcard use, wildcard capture by Oracle
- You can find generic programming in many languages
- See type theory and category theory if you want to know how to design generics
- Ronald Garcia, etc., a comparative study of language support for generic programming, 2003
- Exercise: object comparison
|
2019.11.16 |
- Part I: reflection & annotation
|
2019.11.17 |
- Part I: Stream API (with lambda expressions) & Optional API
- Lambdas and streams (try StreamDemo.zip)
- Marius Herring, Java 8 no more loop, 2015
- Raoul-Gabriel Urma, Java SE 8's Optional, Oracle, 2014
- Supplementary materials for Stream framework
- Alonzo Church, lambda calculus proposed in 1930s
- Ted Neward, Java 8: lambdas part 1 and Java 8: lambdas part 2, Oracle, 2013
- does a lambda expression create an object on the heap every time it's executed?, StackOverflow, 2017
- Oracle tutorial: lambda expressions
- Mario Fusco, Richard Warburton, and Raoul Urma, Java 8 lambdas - a peek under the hood
- Sergey Kuksenko, JDK 8: lambda performance study, Oracle, 2014
- Baeldung, Java infinite streams
- JDK 8: stream style, Oracle
- More slides are listed below: lambda expressions and functional programming, lambdas & streams in JDK 8: beyond the basics, Java 8 lambda expressions & streams
- Parallel functional programming in Java (advanced level)
- Baeldung, guide to Java 8 Optional, 2018.4.18
|
2019.11.23 |
- Part I: Java virtual machine (JVM)
- JVM (see animated slides for Java activation records for bank account example)
- Supplementary materials for JVM
- Part II: concurrent programming
- Basics of operating systems (OS)
- Multithreading basics
|
2019.11.24 |
- Part II: concurrent programming (cont'd)
- Synchronization (Try SemaphoreDemo.java)
- Supplementary materials for concurrency
- Oracle tutorial: lesson: concurrency
- popcornylu, Java 多執行緒的基本知識
- Brandon Skerritt, concurrent programming in Java
- Vivek Sarkar, synchronized statement, advanced locking, Java executors and synchronizers, volatile variables and Java memory model
- Jim Huang (Jserv), 作業系統概念: Concurrency 程式設計篇
- Jim Huang (Jserv), Linux kernel, 2019
- Hyunyoung Lee, concurrency in java, 2019
- Application: multithreaded server (client_server_model_sample.zip)
- Supplementary materials for computer network
- Part III: data structures and algorithms
|
2019.11.30 |
- Part III: data structures and algorithms (cont'd)
|
2019.12.1 |
- Part III: data structures and algorithms (cont'd)
|
2019.12.7 |
- Part III: data structures and algorithms (cont'd)
|
2019.12.8 |
- Part III: data structures and algorithms (cont'd)
- Part IV: design patterns
- Part V
- Refactoring
- Spring framework tutorial
|