This is definitely not an easy book to review. On one hand, there are some well-presented parts with a clear line of thought; and on the other, parts that just aren't right. They may be technically correct, but they presume things such as having a network connection for parts (such as Day 6).
The book does come with all of the source code and the Java 2 SDK on a CD for Windows, Linux and MacOS, which is a bonus.
As with the C++ in 21 days series, the title really is a misnomer; it is not possible to cover anything more than a surface skim of an absolutely huge language in 21 days. I actually did try to learn Java in 21 days and found that at the end I could write code in Java, but I didn't have enough knowledge to plan a program and then sit at the desk and code, as I would with C, C++ (or even C#). Bits were missing.
If you are being taught Java as part of a lecture course, then the book will come in handy. But if you are sitting at your desk thinking, "Hmm, I think I'll learn Java" then you will need additional books to fill in the blanks.