Core Java for the Impatient (2013) 1. FUNDAMENTAL PROGRAMMING STRUCTURES 2. OBJECT-ORIENTED PROGRAMMING 3. INTERFACES AND LAMBDA EXPRESSIONS 4. INHERITANCE AND REFLECTION 5. EXCEPTIONS, ASSERTIONS, AND LOGGING 6. GENERIC PROGRAMMING 7. COLLECTIONS 8. STREAMS 9. PROCESSING INPUT AND OUTPUT 10.CONCURRENT PROGRAMMING 11. ANNOTATIONS 12. THE DATE AND TIME API 13. INTERNATIONALIZATION 14. COMPILING AND SCRIPTING