Note on Java programming paradigms. Mostly from Effective Java by Josh Bloch.
- Effective Java
- Chapter 1. Introduction
- Chapter 2. Creating and Destroying Objects
- Chapter 3. Methods Common to All Objects
- Chapter 4. Classes and Interfaces
- Chapter 5. Generics
- Chapter 6. Enums and Annotations
- Chapter 7. Lambdas and Streams
- Chapter 8. Methods
- Chapter 9. General Programming
- Chapter 10. Exceptions
- Chapter 11. Concurrency
- Chapter 12. Serialization
- The Mind Map of Effective Java
- Java Concurrency in Practice
- Chapter 1. Introduction
- Chapter 2. Thread Safety
- Chapter 3. Sharing Objects
- Chapter 4. Composing Objects
- Chapter 5. Building Blocks
- Chapter 6. Task Execution
- Chapter 7. Cancellation and Shutdown
- Chapter 8. Applying Thread Pools
- Chapter 9. GUI Applications
- Chapter 10. Avoiding Liveness Hazards
- Chapter 11. Performance and Scalability
- Chapter 12. Testing Concurrent Programs
- Chapter 13. Explicit Locks
- Chapter 14. Building Custom Synchronizers
- Chapter 15. Atomic Variables and Nonblocking Synchronization
- Chapter 16. The Java Memory Model