#

| Preface |

# Preface

Contents:
Audience
Using This Book
Related Books
Online Resources
Conventions Used in This Book
Request for Comments
Acknowledgments

This book is a reference manual for the Java programming language; it covers Version 1.1 of the Java language. It provides a complete description of all of the constructs in the language, so that programmers can write Java programs that function exactly as expected. This book is not meant to teach you the Java language, although you could probably use it for that purpose if you are already fluent in a number of other programming languages.

This is an exciting time in the development of Java. Version 1.1 is a huge new release that more than doubles the size of the core Java APIs. Fortunately, the Java language itself contains relatively few changes for Java 1.1. The new features of the language are significant, however, both in terms of the useful functionality and the elegance they add to the language. This book covers all of the new language constructs in Java 1.1. Here's a quick list of the new features:

- Inner classes, which include nested top-level classes and interfaces, member classes, local classes, and anonymous classes

- `final` local variables, method parameters, and `catch` clause parameters

- Instance initializers

- Blank finals, or `final` variable declarations that do not include initializers

- Class literals for obtaining `Class` objects

- Anonymous arrays, or arrays created and initialized without a variable initializer

## Audience

This book is for serious Java programmers. If you are such a programmer, you often need to know precisely how the language works in particular situations. This reference manual provides that information in an easy-to-use form. So, for example, if you need to know exactly how Java selects the method to be invoked by a method call expression, you can find a detailed explanation in this book. Or, if you need to know precisely how the multiplication operator behaves with floating-point data, you can find the details here.

However, if you are actually implementing a Java compiler, this book is not meant for you. In some cases, we've simplified the grammar to make it easier for programmers to understand. These simplifications don't detract from the precision of the book; they simply omit details that aren't important unless you are developing a Java compiler. If you are implementing a compiler or other Java environment, you'll want to get The Java Language Specification written by James Gosling, Bill Joy, and Guy Steele, published by Addison-Wesley.

|  | Using This Book