Book description
The release of Java SE 8 introduced significant enhancements that impact the Core Java technologies and APIs at the heart of the Java platform. Many old Java idioms are no longer required and new features like lambda expressions will increase programmer productivity, but navigating these changes can be challenging.
Core Java® for the Impatient is a complete but concise guide to Java SE 8. Written by Cay Horstmann—the author of Java SE 8 for the Really Impatient and Core Java™, the classic, two-volume introduction to the Java language—this indispensable new tutorial offers a faster, easier pathway for learning the language and libraries. Given the size of the language and the scope of the new features introduced in Java SE 8, there’s plenty of material to cover, but it’s presented in small chunks organized for quick access and easy understanding.
If you’re an experienced programmer, Horstmann’s practical insights and sample code will help you quickly take advantage of lambda expressions (closures), streams, and other Java language and platform improvements. Horstmann covers everything developers need to know about modern Java, including
Crisp and effective coverage of lambda expressions, enabling you to express actions with a concise syntax
A thorough introduction to the new streams API, which makes working with data far more flexible and efficient
A treatment of concurrent programming that encourages you to design your programs in terms of cooperating tasks instead of low-level threads and locks
Up-to-date coverage of new libraries like Date and Time
Other new features that will be especially valuable for server-side or mobile programmers
Whether you are just getting started with modern Java or are an experienced developer, this guide will be invaluable for anyone who wants to write tomorrow’s most robust, efficient, and secure Java code.
Table of contents
- About This eBook
- Title Page
- Copyright Page
- Dedication Page
- Contents
- Preface
- Acknowledgments
- About the Author
- Chapter 1. Fundamental Programming Structures
- Chapter 2. Object-Oriented Programming
- Chapter 3. Interfaces and Lambda Expressions
-
Chapter 4. Inheritance and Reflection
-
4.1 Extending a Class
- 4.1.1 Super- and Subclasses
- 4.1.2 Defining and Inheriting Subclass Methods
- 4.1.3 Method Overriding
- 4.1.4 Subclass Construction
- 4.1.5 Superclass Assignments
- 4.1.6 Casts
- 4.1.7 Final Methods and Classes
- 4.1.8 Abstract Methods and Classes
- 4.1.9 Protected Access
- 4.1.10 Anonymous Subclasses
- 4.1.11 Inheritance and Default Methods
- 4.1.12 Method Expressions with super
- 4.2 Object: The Cosmic Superclass
- 4.3 Enumerations
- 4.4 Runtime Type Information and Resources
- 4.5 Reflection
- Exercises
-
4.1 Extending a Class
- Chapter 5. Exceptions, Assertions, and Logging
-
Chapter 6. Generic Programming
- 6.1 Generic Classes
- 6.2 Generic Methods
- 6.3 Type Bounds
- 6.4 Type Variance and Wildcards
- 6.5 Generics in the Java Virtual Machine
-
6.6 Restrictions on Generics
- 6.6.1 No Primitive Type Arguments
- 6.6.2 At Runtime, All Types Are Raw
- 6.6.3 You Cannot Instantiate Type Variables
- 6.6.4 You Cannot Construct Arrays of Parameterized Types
- 6.6.5 Class Type Variables Are Not Valid in Static Contexts
- 6.6.6 Methods May Not Clash after Erasure
- 6.6.7 Exceptions and Generics
- 6.7 Reflection and Generics
- Exercises
- Chapter 7. Collections
-
Chapter 8. Streams
- 8.1 From Iterating to Stream Operations
- 8.2 Stream Creation
- 8.3 The filter, map, and flatMap Methods
- 8.4 Extracting Substreams and Combining Streams
- 8.5 Other Stream Transformations
- 8.6 Simple Reductions
- 8.7 The Optional Type
- 8.8 Collecting Results
- 8.9 Collecting into Maps
- 8.10 Grouping and Partitioning
- 8.11 Downstream Collectors
- 8.12 Reduction Operations
- 8.13 Primitive Type Streams
- 8.14 Parallel Streams
- Exercises
- Chapter 9. Processing Input and Output
- Chapter 10. Concurrent Programming
- Chapter 11. Annotations
- Chapter 12. The Date and Time API
- Chapter 13. Internationalization
-
Chapter 14. Compiling and Scripting
- 14.1 The Compiler API
- 14.2 The Scripting API
-
14.3 The Nashorn Scripting Engine
- 14.3.1 Running Nashorn from the Command Line
- 14.3.2 Invoking Getters, Setters, and Overloaded Methods
- 14.3.3 Constructing Java Objects
- 14.3.4 Strings in JavaScript and Java
- 14.3.5 Numbers
- 14.3.6 Working with Arrays
- 14.3.7 Lists and Maps
- 14.3.8 Lambdas
- 14.3.9 Extending Java Classes and Implementing Java Interfaces
- 14.3.10 Exceptions
- 14.4 Shell Scripting with Nashorn
- Exercises
- Index
- Code Snippets
Product information
- Title: Core Java® for the Impatient
- Author(s):
- Release date: February 2015
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780133791563
You might also like
book
Core Java® Volume I—Fundamentals, Tenth Edition
Core Java® has long been recognized as the leading, no-nonsense tutorial and reference for experienced programmers …
audiobook
Intentional Mindset
Some people seem to be born with a mental makeup that predestines them for success. But …
audiobook
Difficult Conversations
You have to talk with a colleague about a fraught situation, but you're worried that they'll …
book
Optimization and Decision Support Design Guide: Using IBM ILOG Optimization Decision Manager
Today many organizations face challenges when developing a realistic plan or schedule that provides the best …