Please enable JavaScript.
Coggle requires JavaScript to display documents.
EckelOnJava8 - Coggle Diagram
EckelOnJava8
Concurrent Programming (1464)
The Terminology Problem (1466)
A New Definition of Concurrency (1469)
Concurrency Superpowers (1471)
Concurrency is for Speed (1475)
The Four Maxims of Java Concurrency (1478)
The Brutal Truth (1483)
The Rest of the Chapter (1486)
Parallel Streams (1488)
Terminating Long-Running Tasks (1525)
Creating and running Tasks (1507)
Tasks and Executors
Using more Threads
Producing Results
Lambdas and Method References as Tasks
Completable Futures (1529)
Deadlocks (1561)
Effort, Complexity, Cost (1576)
Constructors are not Thread-Save (1568)
Patterns (1594)
Singleton (1598)
Building Application Frameworks (1602)
Fronting for an implementation (1604)
Factories: Encapsulating Object Creation (1613)
Function Objects (1627)
Command
Strategy
Chain of Responsibiltiy
Changing the Interface (1636)
Adapter
Facade
Interpreter: Run-Time Flexibility (1641)
Callbacks (1642)
Observer
Multiple Dispatching (1653)
Visitor
Pattern Refactoring (1663)
Appendix: Low-Level Concurrency (2044)
What is a Thread?
The Optimal Number of Threads
How Many Threads Can I Create? (2049)
Catching Exceptions (2052)
Sharing Resources (2059)
The volatile keyword (2071)
Visibility (2072)
Reordering and Happens-Before (2074)
Atomicity (2077)
Atomic Classes (2088)
Critical Sections (2091)
Library Components (2101)
DelayQueue
PriorityBlockingQueue
Lock-Free Collections (2111)
Validating Your Code (807)
Testing
Unit Testing
Preconditions
Guava Assertions
Housekeeping (198)
Guaranteed Initialization with the Constructor
Method Overloading
No-arg Constructors
Reuse (283)
Composition Syntax
Inheritance Syntax
Delegation
Strings (915)
Immutable Strings
Overloading + vs. StringBuilder
Unintented Recursion
Appendix: Others
Appendix: Benefits and Cost of Static Type Checking (2168)
Appendix: The Positive Legacy of C++ and Java (2222)
Appendix: Becoming a Programmer (2227)
Arrays (1248)
Why Arrays are Special
Arrays and Generics
Appendix: Programming Guidelines (1720)
Design
Implementation
Preface
Introduction
What is an Object?
Installing Java and the Book Examples (65)
Objects Everywhere (73)
Operators (107)
Control Flow (165)
Implementation Hiding (256)
Polymorphism (335)
Interfaces (382)
Inner Classes (441)
Collections (499)
Functional Programming (577)
Streams (628)
Exceptions (701)
Files (881)
Type Information (989)
Generics (1077)
Annotations (1417)
Appendix: Supplements
Appendix: Javadoc (1739)
Appendix: Passing and Returning Objects (1748)
Appendix: I/O Streams (1810)
Appendix: Standard I/O (1829)
Appendix: New I/O (1839)
Appendix: Understanding equals() and hashCode() (1881)
Appendix: Collection Topics (1919)
Appendix: Data Compression (2116)
Appendix: Object Serialization (2129)