Book Recommendations
So I have to admit that, as an author, I feel a bit uneasy about making
book recommendations--I don't want people to think I'm a tool of the
publishing industry, or a mouthpiece for Prentice Hall or anything.
Most of all, I don't want this site to be just a promotion for
Core Jini, but rather a resource for people doing Jini development.
Books are some of the best resources we have available though, and I do
have some strong opinions on what I like and what I don't like. Particularly
in the Java market, where new books get churned out regularly, there's a
need to separate the wheat from the chaff. Hence my decision to go
ahead and provide a page of my personal book picks.
Some of the books I've listed here are published
by Prentice Hall (who published my book), and some are published by others.
Some are even competitors to my book. But all have earned a place on my
shelf, and I have no qualms about personally recommending any of them.
I hope you find them as useful as I have. I've provided brief descriptions
of why I think the books listed below are valuable; you can click on the
cover image to jump to the book's page on
Amazon.com. You can help support this website (hosting charges, etc.) by
clicking through to buy from Amazon!
(This list is just Java books. I've also provided a list of
technical (and pseudo-technical) books that
aren't Java related but that I think are outstanding.)
Jini Books
Well, clearly I'm more than a little biased about this book. But I
do feel that it gives a fine treatment of the topic. I've got a
separate page that gives some more details
on Core Jini, so you can see for yourself if you think it might
be useful. The Second Edition of the book is just out, and is fully
updated for Jini 1.1.
NEW! This book has coverage of Jini 1.1, as well as lots of great information
on essential Java networking technologies (all the way from raw sockets
up to RMI and IIOP). The book's got a very practical feel, and covers
the mechanics of implementing lease grantors, and transaction participants
(the latter, I believe, isn't well-covered by any other Jini book).
One of the things that makes this book so interesting is that the second
part of it is filled with a number of "real world" case studies of
Jini in action. These include everything from remote access to medical
data to car instrumentation to agent frameworks.
Despite its title, this book contains more than just the Jini
specifications. It also includes a fine introduction to the Jini
technology, and Jim Waldo and crew's fine A Note on Distributed
Computing, which frames the issues that the Jini team felt were
not addressed by earlier distributed computing technologies. The new
Second Edition is fully updated for Jini 1.1.
Of course, the specs are also here, and will be useful for any
hard-core Jini programmers. While the specs are also available
freely as a part of the Jini Starter Kit from Sun, I find that having
a bound copy is useful.
JavaSpaces is a service that fits into the Jini framework and can
provide persistent storage and interchange of objects for Jini
applications. Beyond this, it can also serve as a model for a
new style of distributed computing applications.
The JavaSpaces book is a real gem--it covers far more than just the
APIs for Sun's JavaSpaces service. It digs into the paradigm
behind JavaSpaces, and how to use this service as the foundation for
distributed applications. If you're progressing from Jini into this
particular service, this is the book to have.
NEW! This book is an updated version of Jan Newmarch's
excellent online tutorial on Jini.
The tutorial is great, and is how many people have started learning
about Jini technology; the book is up to date, and includes coverage
of how Jini integrates with Enterprise Java Beans and CORBA.
Highly recommended, step-by-step guide to getting started with Jini.
Jini in a Nutshell:Jini in a Nutshell follows in the O'Reilly
tradition of consise books with a nuts'n'bolts flavor. The book has
coverage of activation, setting up to run Jini services, and all the basics.
The second half of the book is a Jini reference.
The book seems to be in limited availability right now, which is a
shame since it's a great book.
General Java Books
The best Java book yet written. If you're familiar with
Scott Meyer's excellent Effective C++, this is a comparable
work for Java, written by Josh Bloch, who was the technical lead for
many of the Java class libraries. It's filled with concrete patterns
and tips that are specific
to the Java language. Really great; very readable and eminmently useful.
I can't say enough good things about this book. At JavaOne 2001,
James Gosling said, "Go buy this book!" I'm glad I did, and I
couldn't agree more.
Core Java is perhaps the definitive general-purpose Java book.
The version here has
recently been updated to reflect changes in JDK 1.4.
Lots of details, lots of coverage, lots of sample programs.
The book is massive, and makes a great extended resource to
the language, perfect for someone who's just finished, say,
Just Java, or for experienced programmers who need one-stop
shopping for Java information.
NEW! The third edition of this great book has
just come out, and is completely up-to-date with the recent changes to
the Java language (floating point changes, new collection framework,
etc.) I was a technical reviewer on this edition, and I think
it's the best one yet.
The Java Programming Language is to Java what the
"K&R" book was to C: a concise introduction of the language designed
for programmers who need to understand the basics. There aren't a lot
of tutorials, coverage of the class libraries, or sample programs
here--just the bare minimum on the language itself. But for questions
about Java the language (as opposed to Java the class libraries) this
book is without peer. Definitely for experienced programmers.
If you're looking for a great introductory Java text, I have no
reservations about recommending Just Java, by Peter van der
Linden. Peter's books all reflect his own personal style--a bit of
humor, and concise and understandable explanations of the material. This
book covers the language, class libraries and "big ideas" behind
Java, and is updated for Java 2. This book is a nice contrast to both
the Java Programming Language (which is a quick, bare-bones coverage
of the language) and Core Java (which provides incredibly in-depth
detail and tutorial material on all aspects of the language).
The author of this book, Li Gong, is the chief security architect
at JavaSoft, so you can believe that it's authoritative. This book
delivers the goods on all aspects of Java security.
As you know if
you've read Core Jini, I go into just enough details on security to
allow you to get by, and recommend doing some external reading if
you need to do more. This is definitely the book I recommend for
the low-down on security.
The Java Class Libraries: Wow. In my humble opinion, these three volumes are, out of everything
else here, the absolute requirements on any Java programmer's shelf. These
books are simply unbelievable--complete coverage of the entire set of
Java class libraries, with an insane number of example programs.
These sit handy, right next to my computer, for whenever I need to
figure out how some aspect of the class libraries works.
The supplement for Java 2 recently came out, with provides another
1100 pages or so of Java 2-specific coverage and examples. You need
all three.
Swing/JFC Books
This is the only book on Swing that I own and it's been invaluable.
Swing is a rich--and large--set of APIs, and the javadocs and online
tutorials just didn't cut it for me. This book has loads of examples
and does a great job of covering even the sticky details around
complex components like JTable and JTree.
There's apparently a second volume of this one on the way and I plan
to pick it up as soon as it hits the streets.