K
en
Arnold, James Gosling, and David Holmes'
Java Programming Language,
Third Edition
is an excellent tutorial that teaches the Java programming
language to people who are familiar with basic programming concepts. Although
no knowledge of any particular programming language is required, the reader
must know the general principles of object oriented-programming before
opening this book. With that in mind, we highly recommend this book as
a tutorial and reference to the core of the Java programming language.
Different
from other Java tutorials,
The Java Programming Language
covers
just the core language. You'll find nothing about graphical user interface
development, databases, applets, components, remote access, etc., beyond
a brief mention. This makes sense because Java is a general-purpose programming
language and is used to develop radically different applications. For one
Java programmer, database access is of paramount importance; while a colleague
couldn't care less because s/he implements the user interface. Not every
Java developer has a strong interest in the language's Internet capabilities.
Instead
of trying to cover all of Java (which they couldn't do in 600 pages anyway)
the authors focus on the core language?the subset of Java that every Java
programmer must know before s/he starts any serious development using this
programming language. Following this line of logic, the authors discuss
all language features (language constructs and concepts) plus some packages
that are closely related to the core language and are most commonly used
in general programs (including I/O, collections, utilities, system, and
internationalization).
Beyond
being a recommendable tutorial for novices,
The Java Programming Language
is a useful reference for intermediate programmers. Because it's so well
organized, it's easy to find the right section describing a given feature.
The various chapters and sections can be read almost independently of each
other. If you already know a bit about Java, or have read the book cover
to cover before, you can easily look up what you need later. For instance,
if you haven't used inner classes so far, you can read the 16 pages on
nested classes and interfaces. Afterwards you'll know everything that's
relevant about these language features, including syntax, semantics, and
typical use of the feature. The examples given for illustration purposes
are well chosen?they're never too simple or too complex. The authors just
get to the main point and leave out potentially distracting details. It
is very well done.
For
those of you who know the earlier editions of
The Java Programming Language
,
let's take a look at the main difference between the second and third editions.
The third edition covers JDK 1.3 (or Java 2 SDK, Standard Edition Version
1.3, to be more precise). In addition to adding new stuff, the third edition
is thoroughly revised and partly restructured. An example is a new chapter
about nested classes and interfaces. Inner classes were mentioned in the
second edition but without much detail. The same holds for programming
with types. The third edition provides more details and includes dynamic
proxies. There is an entirely new chapter on garbage collection that comprises
not only garbage collection and finalization but also the reachability
concepts and reference objects that are new to the JDK 1.3.
This
book is a must-have for every Java programmer. It is Java's counterpart
to Brian Kernighan and Dennis Ritchie's
The C Programming Language
and Bjarne Stroustrup's
The C++ Programming Language, Third Edition
.
Like these classic textbooks,
The Java Programming Language
does
not aim to teach programming. Instead, it explains the core of the Java
programming language clearly and concisely. The third edition is still
the classic Java textbook that it's always been since the first edition.
It remains our favorite reference when we are asked to recommend a Java
book for students with an OO background.
Angelika
Langer
develops and teaches classes on Java, C++, multithreading, and
internationalization. She is an internationally recognized speaker and
served on the ANSI/ISO C++ Committee from 1993 to 1998.
Klaus Kreft
is a software architect and senior consultant with 15+ years of experience
in industrial software development. He currently works for Siemens Business
Services in Germany. Langer and Kreft are authors of "Standard C++ IOStreams
and Locales" (Addison-Wesley, 2000) and are columnists for the C/C++ Users
Journal.
|