Java is a programming language that has significantly grown in size and complexity since its inception in the ’90s. The mission of Java precisely is to concisely present technical aspects that are reputed difficult. This is particularly relevant since recent additions in the language are difficult to master. For example, the book covers typing, collection, stream, parallel, and functional processing. The book is relatively short with less than 200 pages.
The book begins with a detailed presentation of the Java syntax, including types, variable scopes, arrays, and syntax in general. It is relevant to notice that the book does a very good job at describing typing relations and primitive types conversions without using aggressive and abstract formalism.
The book does not discuss programming environments (for example, Eclipse or the Java Virtual Machine) or external tools (for example, debuggers, profiler, or JUnit). Java precisely focuses on the Java programming language and few essential libraries (for example, collections, I/O, stream, and parallel and functional programming). Although the book covers many aspects of Java 8, it does not discuss JavaFX.
The book is well written, with a concise and effective writing style. Most of the chapters are example driven. General descriptions are given on the left-hand pages, while examples are on the right-hand pages. All examples are short and independent. The book does a very good job at providing descriptions that are easy to understand for experienced programmers, albeit not specialists in type theory or concurrency. The book is well structured and the chapter ordering is rather intuitive. For example, generic types are followed by the description of collections, followed by function and stream interfaces. The book index is also well structured with intuitive section and chapter titles.
The book is written for experienced programmers who want to refresh their knowledge or wish to have an overview of Java 8. I do not recommend Java precisely to beginners or to people who wish to learn object orientation since the book does not discuss programming methodologies. The book deals with advanced topics about Java. Java programmers who wish to consolidate their knowledge will surely appreciate it.