Jeanne Boyarsky wrote:“Murach's Java Programming” follows the standard style of Murach books. The left side of each paired page is text and the right side is code/tables/bullets. This is great for learning a new language because it lets you easily reference the highlights while also having a text description available. As always, the end of chapter exercises are excellent.
The printed book covers NetBeans as the IDE. However, they provide equivalent text for download if you want to use Eclipse. Not as convenient as when they had NetBeans and Eclipse versions of the book. But the Eclipse materials are of book quality and do use the paired page format. Both NetBeans and Eclipse have good screenshots and descriptions of how to accomplish common tasks. However, the Eclipse version doesn't look update for Java 9. In particular, the book talks about launching JShell from NetBeans but the online Eclipse pages don't.
This is a great book for learning Java. It goes over concepts, idioms and things you need to know when program. The intro to modules is clear as is the intro to lambdas/streams. I would have liked chapter 22 to be longer as it is such a core concept. But I understand why they chose a simplified intro to the topic. (I recommend reading “Java 8 for the Really Impatient” after this book.)
I really like the intro including types of applications and keywords. Good programming idioms are covered so readers can see patterns. I particularly like how the code listings highlighted the relevant parts. I also like the UML class diagram introduction. I like that the book covers when various APIs were introduced and doesn't harp on the “old way.” For example, pre-Java 8 dates got a total of two pages of coverage. I'm also happy the book covers SQL and PreparedStatements well.
Murach's previous Java intro book was one of three I recommended to people interested in learning Java. Their Java 8/9 book is just as good.
I give this book 9 out of 10 horseshoes.
Disclosure: I received a review copy of this book from the publisher for reviewing it on behalf of CodeRanch.