Author: Khalid A. Mughal, Rolf W Rasmussen
Audience: Candidates for the OCA exam.
Reviewer: Alex Armstrong
Java SE 8 is still important and there is room for more books.
The really important thing about this book is that you notice that the final part of the title is Oracle Certified Associate (OCA). It isn't about Java SE 8 in general but is specifically oriented to getting you though Exam 1Z0-808. This doesn't mean it has no value if you are not taking the exam, but you need to keep this in mind when thinking about buying a copy.
The second most important thing to know about this book is that it is not for the beginner. If you are a reasonably experienced programmer in another language or know Java at a slightly lesser level then you might find this book helpful. The approach is best described as the sort of notes an experienced Java programmer might write to make sure they understood everything and could come back to for a quick refresher course.
The book opens with the Basics of Java Programming. This is a strange idea of what the "basics" are. It covers classes, objects, inheritance and how to compile a Java Program. If you don't already have some idea how everything works then you are going to be left behind at Chapter 1.
Chapter 2 is called Language Fundamentals and it does take us back to the very beginning. - identifiers. keywords, integers, literals, data types and so on. This reads more like a really good manual than a discursive introduction to the ideas that are behind it all.
Chapter 3 is about Declarations - class declarations, method declarations, constructors, arrays, parameter passing, main and enumerated types. Yes I'm not sure why the chapter has this title, given it coveres a much wider range of topics.
Chapter 4 is on Access Control, i.e. public, protected and private but again the scope of the chapter is much wider and includes scope, abstract classes and final classes.
Chapter 5 is more correctly named Operators and Expressions and it covers more or less nothing else. It does go into two's complement which is not normally a must-do Java topic.
The next two chapters take us beyond the basics of data. We have a complete chapter on Control Flow, including exception handling, and an in depth look at Object-Oriented Programming.
From here the book starts to look at the Java infrastructure rather than the core language. Chapter 8, Fundamental Classes deals with Java.lang and wrapper classes, the String class and StringBuilder. Chapter 9 is about Object Lifetime. Chapter 10 is about The ArrayList <E> Class and Lambda Expressions ,two topics that don't really have a lot in common, without really going into generics
The book closes with a look at the Date and Time classes and how to work with dates, times and intervals.
Normally a review would end a this point but there are some important appendixes. Appendix A is about taking the exam, B lists exam topics, C gives answers to the review questions that have been a feature of all of the earlier chapters and D to the Programming Exercises. Appendix E gives you a mock exam and F gives you the answers. If you are taking the exam then these are vital material. If you are not taking the exam they are just a fun test of how much you know.
If you are planning to take the exam and you don't need too much spoonfeeding of Java ideas, then this is the essential book that will help you pass. If you are not so sure of your Java then I'd recommend getting another book before setting out on tackling the exam. If you don't plan to take the exam, this book is more like a set of notes to remind you about Java in this respect they are good but not essential.
To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.