Thinking in Java is a printed version of Bruce
Eckel's online materials that provides a useful
perspective on mastering Java for those with previous
programming experience. The author's take on the
essence of Java as a new programming language and
the thorough introduction to Java's features make
this a worthwhile tutorial.
Thinking in Java begins a little esoterically,
with the author's reflections on why Java is new
and better. (This book's choice of font for chapter
headings is remarkably hard on the eyes.) The
author outlines his thoughts on why Java will
make you a better programmer, without all the
complexity. The book is better when he presents
actual language features. There's a tutorial to
basic Java types, keywords, and operators. The
guide includes extensive source code that is sometimes
daunting (as with the author's sample code for
all the Java operators in one listing.) As such,
this text will be most useful for the experienced
The text then moves on to class design issues,
when to use inheritance and composition, and related
topics of information hiding and polymorphism.
(The treatment of inner classes and scoping will
likely seem a bit overdone for most readers.)
The chapter on Java collection classes for both
Java Developer's Kit (JDK) 1.1 and the new classes,
such as sets, lists, and maps, are much better.
There's material in this chapter that you are
unlikely to find anywhere else.
Chapters on exception handling and programming
with type information are also worthwhile, as
are the chapters on the new Swing interface classes
and network programming. Although it adopts somewhat
of a mixed-bag approach, Thinking in Java contains
some excellent material for the object-oriented
developer who wants to see what all the fuss is
about with Java.