Preface - Java in a Nutshell, 6th Edition (2015)

Java in a Nutshell, 6th Edition (2015)


This book is a desktop Java reference, designed to sit faithfully by your keyboard while you program. Part I of the book is a fast-paced, “no-fluff” introduction to the Java programming language and the core runtime aspects of the Java platform. Part II is a reference section that blends elucidation of core concepts with examples of important core APIs. The book covers Java 8, but we recognize that some shops may not have adopted it yet—so where possible we call out if a feature was introduced in Java 8 (and sometimes Java 7). We use Java 8 syntax throughout, including using lambda expressions in code that would previously have used a trivial anonymous nested class.

Changes in the Sixth Edition

The fifth edition of this book covers Java 5, whereas this edition covers Java 8. The language, and the working environment of the programmer, have both changed considerably since the last edition was published nearly a decade ago. This new edition has, accordingly, changed a vast amount as well. One very important aspect is that this book does not attempt to be as complete a description of the core platform APIs as was possible in earlier editions.

For one thing, the sheer size of the core APIs render this utterly impractical for a printed book. A more compelling reason is the continued rise of fast, always-on Internet. The amount of Java programmers who regularly work without Internet access is now vanishingly small. The proper place for detailed reference API docs is online, not printed out.

Accordingly, the reference section, which occupied two-thirds of the fifth edition, is gone. In the space we’ve recovered, we have tried to update the concept of what it means to be a “Nutshell” guide. The modern Java developer needs to know more than just syntax and APIs. As the Java environment has matured, such topics as concurrency, object-oriented design, memory, and the Java type system have all gained in importance—even among mainstream developers.

In this edition, we have tried to reflect this changed world, and have largely abandoned the historical approach of earlier editions. In particular, the exhaustive attempt to detail exactly which version of Java particular features arrived with has mostly been abandoned—only the most recent versions of Java are likely to be of interest to the majority of Java developers.