1. Introduction. Example Programs.
References.
Other Books in The Java Series.
2. Grammars. Context-Free Grammars.
The Lexical Grammar.
The Syntactic Grammar.
Grammar Notation.
3. Lexical Structure. Unicode.
Lexical Translations.
Unicode Escapes.
Line Terminators.
Input Elements and Tokens.
White Space.
Comments.
Keywords.
Identifiers.
Literals.
Separators.
Operators.
4. Types, Values, and Variables. Primitive Types and Reference Types.
Primitive Types and Values.
Reference Types, Objects, and Reference Values.
When Types Are the Same.
Where Types Are Used.
Variables.
5. Conversions and Promotions. Contexts for Conversions.
Conversions of Primitive Values.
Assignment Conversion.
Method Call Conversion.
Casting Conversions.
Numeric Promotions.
6. Names. Declarations.
Names.
Scope and Hiding of a Simple Name.
Members and Inheritance.
Qualified Names and Access Control.
Determining the Meaning (Denotation) of a Name.
Fully Qualified Names.
Naming Conventions.
Type Evolution and Name Conflicts.
7. Packages. Packages.
Host Support for Packages.
Compilation Units.
Package Declarations.
Import Declarations.
Type Declarations.
Avoiding Package Name Conflicts.
8. Class Declarations. Class Declarations.
The Class Members.
Field Declarations.
Method Declarations.
Static Initializers.
Constructor Declarations.
9. Interface Declarations. Interface Declarations.
The Interface Members.
Field (Constant) Declarations.
Method (Signature) Declarations.
Implementing Interfaces which Are Not Public.
An Example of Interfaces.
10. Array Declarations. Array Basics.
Array Types.
Array Variables.
Array Creation.
Array Access.
A Simple Example.
Array Initializers.
Array Members.
Arrays and Clones.
Array Store Exception.
Additional Array Examples.
Arrays of Characters and Strings.
11. Exceptions. The Causes of Exceptions.
Compile-Time Checking of Exceptions.
Handling of an Exception.
An Example of an Exception.
The Exception Hierarchy.
12. Execution. Virtual Machine Startup.
Class and Interface Loading and Linking.
Class Initialization.
Creation of New Class Instances.
Calling Methods of Objects.
Cloning Objects.
Finalization of Class Instances.
Class Finalization.
Class Unloading.
Virtual Machine Exit.
13. Blocks and Statements. Normal and Abrupt Completion of Statements.
Blocks.
Local Variable Declaration Statements.
Statements.
The Empty Statement.
Labeled Statements.
Expression Statements.
The if Statement.
The switch Statement.
The while Statement.
The do Statement.
The for Statement.
The break Statement.
The continue Statement.
The return Statement.
The throw Statement.
The synchronized Statement.
The try statement.
Unreachable Statements.
14. Expressions. Evaluation, Denotation, and Result.
Variables as Values.
Compile-Time Type of an Expression.
Run-Time Type of an Expression.
Normal and Abrupt Completion of Evaluation.
Evaluation Order.
Primary Expressions.
Class Instance Creation Expressions.
Array Creation Expressions.
Field Access Expressions.
Method Call Expressions.
Array Access Expressions.
Postfix Expressions.
Unary Operators.
Cast Expressions.
Multiplicative Operators.
Additive Operators.
Shift Operators.
Relational Operators.
Equality Operators.
Bitwise and Logical Operators.
Conditional-And Operator &&.
Conditional-Or Operator ||.
Conditional Operator ? :.
Assignment Operators.
Expression.
Constant Expression.
15. Definite Assignment. Definite Assignment and Expressions.
Definite Assignment and Statements.
16. Threads and Locks. Terminology and Framework.
Rules about Variables.
Rules about Locks.
Rules about the Interaction of Locks and Variables.
Rules for Volatile Variables.
Discussion.
Threads.
Locks.
17. Documentation Comments. The Text of a Documentation Comment.
HTML in a Documentation Comment.
Summary Sentence.
Taglines.
Example.
18. LALR(1) Java Grammar. Problem #1: Field vs. Method Declaration.
Problem #2: Cast vs. Parenthesized Expression.
Problem #3: Modifiers Too Specific.
Productions From 2.3: Syntactic Grammar.
Productions From 3: Lexical Structure.
Productions From 4: Types, Values, and Variables.
Productions From 6: Names.
Productions From 7: Packages.
Only in the LALR(1) Grammar.
Productions From 8: Class Declarations.
Productions From 9: Interface Declarations.
Productions From 10: Array Declarations.
Productions From 13: Blocks and Statements.
Productions From 14: Expressions.
19. The java.lang Package. The class Object.
The class Class.
The class Boolean.
The class Character.
The class Number.
The class Integer.
The class Long.
The class Float.
The class Double.
The class Math.
The class String.
The class StringBuffer.
The class ClassLoader.
The class Process.
The class Runtime.
The class SecurityManager.
The class System.
The interface Runnable.
The class Thread.
The class ThreadGroup.
Classes for Exceptions and Errors.
20. The java.util Package. The class BitSet.
The class Date.
The class Dictionary.
The class EmptyStackException.
The interface Enumeration.
he class Hashtable.
The class NoSuchElementException.
The class Observable.
The interface Observer.
The class Properties.
The class Random.
The class Stack.
The class StringTokenizer.
The class Vector.
21. The java.io Package. The class BufferedInputStream.
The class BufferedOutputStream.
The class ByteArrayInputStream.
The class ByteArrayOutputStream.
The interface DataInput.
The class DataInputStream.
The interface DataOutput.
The class DataOutputStream.
The class EOFException.
The class File.
The class FileDescriptor.
The class FileInputStream.
The class FileNotFoundException.
The class FileOutputStream.
The interface FilenameFilter.
The class FilterInputStream.
The class FilterOutputStream.
The class IOException.
The class InputStream.
The class InterruptedIOException.
The class LineNumberInputStream.
The class OutputStream.
The class PipedInputStream.
The class PipedOutputStream.
The class PrintStream.
The class PushbackInputStream.
The class RandomAccessFile.
The class SequenceInputStream.
The class StreamTokenizer.
The class StringBufferInputStream.
The class UTFDataFormatException.
References. Index. 0201634511T04062001