View Review Details


Book:   Hardcore Java
Subject:   Not bad, good for introductions to advanced language features
Date:   2007-09-14 22:11:09
From:   Bart Schouten
Rating:  StarStarStarStarStar

This is not an extremely good book, but it is not bad either. The preface is slightly misleading; it is not as hardcore as it sounds. You are warned that you need to be familiar with technologies such as JavaBeans, and at first I thought this book would be too advanced for me, but as I read on, it proved quite accessible for anybody familiar with the basics of the Java languange.


I do not consider the author an expert in any of the topics he discusses in the book. See him as an experienced programmer that shares the tricks of the trade that he has made his own.
Nevertheless, the topics he addresses are covered thoroughly and many potential pitfalls are shown and explained.


The author proposes to use final variables whenever you can to save you some debugging headaches. I thought this to be a bit of an annoyance, but after I realized that it could also be used as a way of signaling to the users of a method that a parameter will not be changed by the method, I decided to adopt it for method declarations (although it is no guarantee that the parameter will indeed not be changed).


Though this book is outdated at this time, it still provides a good (and thorough) introduction to topics such as assertions, reflection, weak references, exceptions, contraints, generics, and other features of Java 1.5, that every programmer should be familiar with. If you want to learn more about Java than the basics you already know, or if your Java knowledge is a bit dated and you need to catch up with 1.5 (not to mention 1.6), this is a book for you. Much better than scourging the net in search of features, articles and howto's.


A bit stupid was that the author covered in great detail a technique known as Constant Objects for use as option constants, without mentioning the fact that later in the book a new language feature called enumerations would be introduced, that makes the whole constant objects idea pretty much obsolete.