As a basic introduction to programming and to Java, I suppose it's OK. It seemed unnecessarily brief on points I thought would most warrant extended discussion, and unnecessarily expansive on points I thought would have been better handled very briefly, but since very little of the material was at all new to me, I don't have a good sense of how his pacing and organization serve his intended audience.
There is one trivial problem, however, that I find very telling: his placement of braces in sample code. In C and C++, it's a matter of significant debate as to whether opening braces should be alone on a line, visually aligned with their matching closing braces, or immediately following the statement or expression the block is attached to---some companies, organizations, and major projects require the one, and some the other. So if this were a book teaching one of those languages, his consistent use of the former style would be reasonable, though it wastes the equivalent of a page or two of vertical space. In Java, however, no major project uses that style; this book, and examples largely produced from (a later version of) it by my current instructor, are the only places I have ever seen Java code using this style. So where else is this book likely to mislead?