A Shallow Distillation of Critical Java Concepts

Good basic language foundation, lay-of-the-land, and full, though shallow, coverage of fundamental Java concepts.


ORIGINAL DRAFT

If you’re tackling a serious Java project for the first time, this book has all the basics. The Java 1.2 coverage, highlighted on the cover, is limited, exploring the JFC but missing important areas like the Collections and the 2D Graphics APIs. "Java Bible" starts at the beginning and builds knowledge, concept by concept, touching briefly on each important area, without bogging the reader down in great detail. The writing is accessible and reasonably fluid. If what you need is a good high-level understanding of what it means to develop in Java, this book may be just what you’re looking for. If you’re an experienced Java programmer, you’ll find this book too shallow to learn from and best avoided, despite its promising title.

The book is divided into five major sections. Part I, "Introducing Java", looks at the language, object-oriented programming and terminology, Applet development and getting up and running with the JDK. The book ships with Java 1.1.5 on the CD. Part II, "Getting Up to Speed", shows what it takes to write both a "Hello World" Applet and application, and includes chapters that talk about extending classes, debugging, and accessing command line arguments and Applet tags. The final chapter in Part II provides a nice overview of where you can find additional information about Java, ranging from key Web sites to user groups. An interesting note in this chapter indicates that you can search for Applets using AltaVista by using the "applet:" prefix, followed by the Applet class name.

Part III, "Programming Elements and Techniques", takes a close look at Java language fundamentals over 7 chapters. These fundamentals include tokens, types, values, classes, interfaces, packages, strings, arrays, streams, threads and applets in Web pages. Part IV, "Abstract Windows Kit", attacks user interface development. Strictly speaking, this is not a very accurate title, since Chapter 23 introduces the JFC and Chapter 24 is focussed on Swing. Chapter 25, ‘Bringing it all Together with JDK 1.2", provides valuable information about potential incompatibilities, but then falls into more discussion about Swing’s advanced components, concluding with a look at Swing’s new layout managers.

Part V, "Advanced Java", covers JavaBeans, Networking, JDBC, and multimedia. The multimedia coverage is not about the new Multimedia API, but rather talks about the MediaTracker and implements a small sprite engine that may be useful for simple games. The JavaBeans coverage is sufficient to allow readers to develop simple beans, but the chapter ends with a couple of disappointing example that do not properly demonstrate BeanInfo classes or other meaningful concepts. RMI gets four full pages in Chapter 27, "Networking". In effect, none of the Advanced Java information is complete enough to be useful, other than to whet the reader’s appetite.

If you really are starting from ground zero, this book may lead you where you want to go, getting up to speed with Java core technology. You’ll have to look elsewhere for more advanced information, but that may be just fine, depending on your needs. The book lays down a solid foundation, covering all the Java language fundamentals, and providing plenty of tips on where you can find more information. I found the writing style lacking in spots and the information shallow, often stopping just short of where it might have been practical to implement. It’s hard for me to gauge how useful this book might be to Java beginners, but I think the general coverage is good enough to get you where you need to go to become productive with Java. The book is hardly biblical, from any angle you might care to chose.