Contents | Prev | Next | Index
The Java Language Specification
Pre-Release Version 1.0, Draft 5.2 - July 3, 1996
James Gosling
Bill Joy
Guy Steele
Series Foreword
Preface
1 Introduction
- 1.1 Example Programs
- 1.2 References
2 Grammars
- 2.1 Context-Free Grammars
- 2.2 The Lexical Grammar
- 2.3 The Syntactic Grammar
- 2.4 Grammar Notation
3 Lexical Structure
- 3.1 Unicode
- 3.2 Lexical Translations
- 3.3 Unicode Escapes
- 3.4 Line Terminators
- 3.5 Input Elements and Tokens
- 3.6 White Space
- 3.7 Comments
- 3.8 Identifiers
- 3.9 Keywords
- 3.10 Literals
- 3.10.1 Integer Literals
- 3.10.2 Floating-Point Literals
- 3.10.3 Boolean Literals
- 3.10.4 Character Literals
- 3.10.5 String Literals
- 3.10.6 Escape Sequences for Character and String Literals
- 3.10.7 The Null Literal
- 3.11 Separators
- 3.12 Operators
4 Types, Values, and Variables
- 4.1 Primitive Types, Reference Types, and the Null Type
- 4.2 Primitive Types and Values
- 4.2.1 Integral Types and Values
- 4.2.2 Integer Operations
- 4.2.3 Floating-Point Types and Values
- 4.2.4 Floating-Point Operations
- 4.2.5 The boolean Type and boolean Values
- 4.3 Reference Types, Objects, and Reference Values
- 4.3.1 Objects
- 4.3.2 The Class Object
- 4.3.3 The Class String
- 4.3.4 When Reference Types Are the Same
- 4.4 Where Types Are Used
- 4.5 Variables
- 4.5.1 Variables of Primitive Type
- 4.5.2 Variables of Reference Type
- 4.5.3 Kinds of Variables
- 4.5.4 Initial Values of Variables
- 4.5.5 Variables Have Types, Objects Have Classes
5 Conversions and Promotions
- 5.1 Kinds of Conversion
- 5.1.1 Identity Conversions
- 5.1.2 Widening Primitive Conversions
- 5.1.3 Narrowing Primitive Conversions
- 5.1.4 Widening Reference Conversions
- 5.1.5 Narrowing Reference Conversions
- 5.1.6 String Conversions
- 5.1.7 Forbidden Conversions
- 5.2 Assignment Conversion
- 5.3 Method Invocation Conversion
- 5.4 String Conversion
- 5.5 Casting Conversion
- 5.6 Numeric Promotions
- 5.6.1 Unary Numeric Promotion
- 5.6.2 Binary Numeric Promotion
6 Names
- 6.1 Declarations
- 6.2 Names
- 6.3 Scope of a Simple Name
- 6.3.1 Hiding Names
- 6.4 Members and Inheritance
- 6.4.1 The Members of a Package
- 6.4.2 The Members of a Class Type
- 6.4.3 The Members of an Interface Type
- 6.4.4 The Members of an Array Type
- 6.5 Determining the Meaning of a Name
- 6.5.1 Syntactic Classification of a Name According to Context
- 6.5.2 Reclassification of Contextually Ambiguous Names
- 6.5.3 Meaning of Package Names
- 6.5.3.1 Simple Package Names
- 6.5.3.2 Qualified Package Names
- 6.5.4 Meaning of Type Names
- 6.5.4.1 Simple Type Names
- 6.5.4.2 Qualified Type Names
- 6.5.5 Meaning of Expression Names
- 6.5.5.1 Simple Expression Names
- 6.5.5.2 Qualified Expression Names
- 6.5.6 Meaning of Method Names
- 6.5.6.1 Simple Method Names
- 6.5.6.2 Qualified Method Names
- 6.6 Qualified Names and Access Control
- 6.6.1 Determining Accessibility
- 6.6.2 Details on protected Access
- 6.6.3 An Example of Access Control
- 6.6.4 Example: Access to public and Non-public Classes
- 6.6.5 Example: Default-Access Fields, Methods, and Constructors
- 6.6.6 Example: public Fields, Methods, and Constructors
- 6.6.7 Example: protected Fields, Methods, and Constructors
- 6.6.8 Example: private Fields, Methods, and Constructors
- 6.7 Fully Qualified Names
- 6.8 Naming Conventions
- 6.8.1 Package Names
- 6.8.2 Class and Interface Type Names
- 6.8.3 Method Names
- 6.8.4 Field Names
- 6.8.5 Constant Names
- 6.8.6 Local Variable and Parameter Names
7 Packages
- 7.1 Package Members
- 7.2 Host Support for Packages
- 7.2.1 Storing Packages in a File System
- 7.2.2 Storing Packages in a Database
- 7.3 Compilation Units
- 7.4 Package Declarations
- 7.4.1 Named Packages
- 7.4.2 Unnamed Packages
- 7.4.3 Scope and Hiding of a Package Name
- 7.4.4 Access to Members of a Package
- 7.5 Import Declarations
- 7.5.1 Single-Type-Import Declaration
- 7.5.2 Type-Import-on-Demand Declaration
- 7.5.3 Automatic Imports
- 7.5.4 A Strange Example
- 7.6 Type Declarations
- 7.7 Unique Package Names
8 Class Declarations
- 8.1 Class Declaration
- 8.1.1 Scope of a Class Type Name
- 8.1.2 Class Modifiers
- 8.1.2.1 abstract Classes
- 8.1.2.2 final Classes
- 8.1.3 Superclasses and Subclasses
- 8.1.4 Superinterfaces
- 8.1.5 Class Body and Member Declarations
- 8.2 Class Members
- 8.2.1 Examples of Inheritance
- 8.2.1.1 Example: Inheritance with Default Access
- 8.2.1.2 Inheritance with public and protected
- 8.2.1.3 Inheritance with private
- 8.2.1.4 Accessing Members of Inaccessible Classes
- 8.3 Field Declarations
- 8.3.1 Field Modifiers
- 8.3.1.1 static Fields
- 8.3.1.2 final Fields
- 8.3.1.3 transient Fields
- 8.3.1.4 volatile Fields
- 8.3.2 Initialization of Fields
- 8.3.2.1 Initializers for Class Variables
- 8.3.2.2 Initializers for Instance Variables
- 8.3.3 Examples of Field Declarations
- 8.3.3.1 Example: Hiding of Class Variables
- 8.3.3.2 Example: Hiding of Instance Variables
- 8.3.3.3 Example: Multiply Inherited Fields
- 8.3.3.4 Example: Re-inheritance of Fields
- 8.4 Method Declarations
- 8.4.1 Formal Parameters
- 8.4.2 Method Signature
- 8.4.3 Method Modifiers
- 8.4.3.1 abstract Methods
- 8.4.3.2 static Methods
- 8.4.3.3 final Methods
- 8.4.3.4 native Methods
- 8.4.3.5 synchronized Methods
- 8.4.4 Throws
- 8.4.5 Method Body
- 8.4.6 Inheritance, Overriding, and Hiding
- 8.4.6.1 Overriding (By Instance Methods)
- 8.4.6.2 Hiding (By Class Methods)
- 8.4.6.3 Requirements in Overriding and Hiding
- 8.4.6.4 Inheriting Methods with the Same Signature
- 8.4.7 Overloading
- 8.4.8 Examples of Method Declarations
- 8.4.8.1 Example: Overriding
- 8.4.8.2 Example: Overloading, Overriding, and Hiding
- 8.4.8.3 Example: Incorrect Overriding
- 8.4.8.4 Example: Overriding versus Hiding
- 8.4.8.5 Example: Invocation of Hidden Class Methods
- 8.4.8.6 Large Example of Overriding
- 8.4.8.7 Example: Incorrect Overriding because of Throws
- 8.5 Static Initializers
- 8.6 Constructor Declarations
- 8.6.1 Formal Parameters
- 8.6.2 Constructor Signature
- 8.6.3 Constructor Modifiers
- 8.6.4 Throws
- 8.6.5 Constructor Body
- 8.6.6 Constructor Overloading
- 8.6.7 Default Constructor
- 8.6.8 Preventing Instantiation of a Class
9 Interface Declarations
- 9.1 Interface Declarations
- 9.1.1 Scope of an Interface Type Name
- 9.1.2 Interface Modifiers
- 9.1.2.1 abstract Interfaces
- 9.1.3 Superinterfaces
- 9.1.4 Interface Body and Member Declarations
- 9.1.5 Access to Interface Member Names
- 9.2 Interface Members
- 9.3 Field (Constant) Declarations
- 9.3.1 Initialization of Fields in Interfaces
- 9.3.2 Examples of Field Declarations
- 9.3.2.1 Ambiguous Inherited Fields
- 9.3.2.2 Multiply Inherited Fields
- 9.4 Abstract Method Declarations
- 9.4.1 Inheritance and Overriding
- 9.4.2 Overloading
- 9.4.3 Examples of Abstract Method Declarations
- 9.4.3.1 Example: Overriding
- 9.4.3.2 Example: Overloading
10 Arrays
- 10.1 Array Types
- 10.2 Array Variables
- 10.3 Array Creation
- 10.4 Array Access
- 10.5 A Simple Example
- 10.6 Arrays Initializers
- 10.7 Array Members
- 10.8 Array Class Objects
- 10.9 An Array of Characters is Not a String
- 10.10 Array Store Exception
11 Exceptions
- 11.1 The Causes of Exceptions
- 11.2 Compile-Time Checking of Exceptions
- 11.2.1 Why Errors are Not Checked
- 11.2.2 Why Runtime Exceptions are Not Checked
- 11.3 Handling of an Exception
- 11.3.1 Exceptions are Precise
- 11.3.2 Handling Asynchronous Exceptions
- 11.4 An Example of Exceptions
- 11.5 The Exception Hierarchy
- 11.5.1 The Classes Exception and RuntimeException
- 11.5.1.1 Standard Runtime Exceptions
- 11.5.1.2 Standard Checked Exceptions
- 11.5.2 The Class Error
- 11.5.2.1 Loading and Linkage Errors
- 11.5.2.2 Virtual Machine Errors
12 Execution
- 12.1 Virtual Machine Start-Up
- 12.1.1 Load the Class Test
- 12.1.2 Link Test: Verify, Prepare, (Optionally) Resolve
- 12.1.3 Initialize Test: Execute Initializers
- 12.1.4 Invoke Test.main
- 12.2 Loading of Classes and Interfaces
- 12.2.1 The Loading Process
- 12.2.2 Implications for Code Generation
- 12.3 Linking of Classes and Interfaces
- 12.3.1 Verification of the Binary Representation
- 12.3.2 Preparation of a Class or Interface Type
- 12.3.3 Resolution of Symbolic References
- 12.3.4 Implications for Code Generation
- 12.4 Initialization of Classes and Interfaces
- 12.4.1 When Initialization Occurs
- 12.4.2 Detailed Initialization Procedure
- 12.4.3 Implications for Code Generation
- 12.5 Creation of New Class Instances
- 12.6 Finalization of Class Instances
- 12.6.1 Implementing Finalization
- 12.6.2 Finalizer Invocations are Not Ordered
- 12.7 Finalization of Classes
- 12.8 Unloading of Classes and Interfaces
- 12.9 Virtual Machine Exit
13 Binary Compatibility
- 13.1 The Form of a Java Binary
- 13.2 What Binary Compatibility Is and Is Not
- 13.3 Evolution of Packages
- 13.4 Evolution of Classes
- 13.4.1 abstract Classes
- 13.4.2 final Classes
- 13.4.3 public Classes
- 13.4.4 Superclasses and Superinterfaces
- 13.4.5 Class Body and Member Declarations
- 13.4.6 Access to Members and Constructors
- 13.4.7 Field Declarations
- 13.4.8 final Fields and Constants
- 13.4.9 static Fields
- 13.4.10 transient Fields
- 13.4.11 volatile Fields
- 13.4.12 Method and Constructor Declarations
- 13.4.13 Method and Constructor Parameters
- 13.4.14 Method Result Type
- 13.4.15 abstract Methods
- 13.4.16 final Methods
- 13.4.17 native Methods
- 13.4.18 static Methods
- 13.4.19 synchronized Methods
- 13.4.20 Method and Constructor Throws
- 13.4.21 Method and Constructor Body
- 13.4.22 Method and Constructor Overloading
- 13.4.23 Method Overriding
- 13.4.24 Static Initializers
- 13.5 Evolution of Interfaces
- 13.5.1 public Interfaces
- 13.5.2 Superinterfaces
- 13.5.3 The Interface Members
- 13.5.4 Field Declarations
- 13.5.5 Abstract Method Declarations
14 Blocks and Statements
- 14.1 Normal and Abrupt Completion of Statements
- 14.2 Blocks
- 14.3 Local Variable Declaration Statements
- 14.3.1 Local Variable Declarators and Types
- 14.3.2 Scope of Local Variable Declarations
- 14.3.3 Hiding of Names by Local Variables
- 14.3.4 Execution of Local Variable Declarations
- 14.4 Statements
- 14.5 The Empty Statement
- 14.6 Labeled Statements
- 14.7 Expression Statements
- 14.8 The if Statement
- 14.8.1 The if-then Statement
- 14.8.2 The if-then-else Statement
- 14.9 The switch Statement
- 14.10 The while Statement
- 14.10.1 Abrupt Completion
- 14.11 The do Statement
- 14.11.1 Abrupt Completion
- 14.11.2 Example
- 14.12 The for Statement
- 14.12.1 Initialization
- 14.12.2 Iteration
- 14.12.3 Abrupt Completion
- 14.13 The break Statement
- 14.14 The continue Statement
- 14.15 The return Statement
- 14.16 The throw Statement
- 14.17 The synchronized Statement
- 14.18 The try statement
- 14.18.1 Execution of try-catch
- 14.18.2 Execution of try-catch-finally
- 14.19 Unreachable Statements
15 Expressions
- 15.1 Evaluation, Denotation, and Result
- 15.2 Variables as Values
- 15.3 Type of an Expression
- 15.4 Expressions and Run-Time Checks
- 15.5 Normal and Abrupt Completion of Evaluation
- 15.6 Evaluation Order
- 15.6.1 Left-Hand Operand First
- 15.6.2 Operands before Operation
- 15.6.3 Parentheses and Precedence Respected
- 15.6.4 Argument Lists Evaluated Left-to-Right
- 15.6.5 Ordering of Other Expressions
- 15.7 Primary Expressions
- 15.7.1 Literals
- 15.7.2 this
- 15.7.3 Parenthesized Expressions
- 15.8 Class Instance Creation Expressions
- 15.8.1 Run-time Evaluation of Class Instance Creation Expressions
- 15.8.2 Example: Evaluation Order and Out-of-Memory Detection
- 15.9 Array Creation Expressions
- 15.9.1 Run-time Evaluation of Array Creation Expressions
- 15.9.2 Example: Evaluation Order
- 15.9.3 Example: Evaluation Order and Out-of-Memory Detection
- 15.10 Field Access Expressions
- 15.10.1 Field Access Using a Primary
- 15.10.2 Accessing Superclass Members using super
- 15.11 Method Invocation Expressions
- 15.11.1 Compile-Time Step 1: Determine Class or Interface to Search
- 15.11.2 Compile-Time Step 2: Determine Method Signature
- 15.11.2.1 Find Methods that are Applicable and Accessible
- 15.11.2.2 Choose the Most Specific Method
- 15.11.2.3 Example: Overloading Ambiguity
- 15.11.2.4 Example: Return Type Not Considered
- 15.11.2.5 Example: Compile-Time Resolution
- 15.11.3 Compile-Time Step 3: Is the Chosen Method Appropriate?
- 15.11.4 Runtime Evaluation of Method Invocation
- 15.11.4.1 Compute Target Reference (If Necessary)
- 15.11.4.2 Evaluate Arguments
- 15.11.4.3 Check Accessibility of Type and Method
- 15.11.4.4 Locate Method to Invoke
- 15.11.4.5 Create Frame, Synchronize, Transfer Control
- 15.11.4.6 Implementation Note: Combining Frames
- 15.11.4.7 Example: Target Reference and Static Methods
- 15.11.4.8 Example: Evaluation Order
- 15.11.4.9 Example: Overriding
- 15.11.4.10 Example: Method Invocation using super
- 15.12 Array Access Expressions
- 15.12.1 Run-time Evaluation
- 15.12.2 Examples: Array Access Evaluation Order
- 15.13 Postfix Expressions
- 15.13.1 Names
- 15.13.2 Postfix Increment Operator ++
- 15.13.3 Postfix Decrement Operator --
- 15.14 Unary Operators
- 15.14.1 Prefix Increment Operator ++
- 15.14.2 Prefix Decrement Operator --
- 15.14.3 Unary Plus Operator +
- 15.14.4 Unary Minus Operator -
- 15.14.5 Bitwise Complement Operator ~
- 15.14.6 Logical Complement Operator !
- 15.15 Cast Expressions
- 15.16 Multiplicative Operators
- 15.16.1 Multiplication Operator *
- 15.16.2 Division Operator /
- 15.16.3 Remainder Operator %
- 15.17 Additive Operators
- 15.17.1 String Concatenation Operator +
- 15.17.1.1 String Conversion
- 15.17.1.2 Optimization of String Concatenation
- 15.17.1.3 Examples of String Concatenation
- 15.17.2 Additive Operators (+ and -) for Numeric Types
- 15.18 Shift Operators
- 15.19 Relational Operators
- 15.19.1 Numerical Comparison Operators <, <=, >, and >=
- 15.19.2 Type Comparison Operator instanceof
- 15.20 Equality Operators
- 15.20.1 Numerical Equality Operators == and !=
- 15.20.2 Boolean Equality Operators == and !=
- 15.20.3 Reference Equality Operators == and !=
- 15.21 Bitwise and Logical Operators
- 15.21.1 Integer Bitwise Operators &, ^, and |
- 15.21.2 Boolean Logical Operators &, ^, and |
- 15.22 Conditional-And Operator &&
- 15.23 Conditional-Or Operator ||
- 15.24 Conditional Operator ? :
- 15.25 Assignment Operators
- 15.25.1 Simple Assignment Operator =
- 15.25.2 Compound Assignment Operators
- 15.26 Expression
- 15.27 Constant Expression
16 Definite Assignment
- 16.1 Definite Assignment and Expressions
- 16.1.1 Boolean Constant Expressions
- 16.1.2 Boolean-valued Expressions
- 16.1.3 The Boolean Operator &&
- 16.1.4 The Boolean Operator ||
- 16.1.5 The Boolean Operator !
- 16.1.6 The Boolean Operator &
- 16.1.7 The Boolean Operator |
- 16.1.8 The Boolean Operator ^
- 16.1.9 The Boolean Operator ==
- 16.1.10 The Boolean Operator !=
- 16.1.11 The Boolean Operator ? :
- 16.1.12 The Conditional Operator ? :
- 16.1.13 Boolean Assignment Expressions
- 16.1.14 Other Assignment Expressions
- 16.1.15 Operators ++ and --
- 16.1.16 Other Expressions
- 16.2 Definite Assignment and Statements
- 16.2.1 Empty Statements
- 16.2.2 Blocks
- 16.2.3 Local Variable Declaration Statements
- 16.2.4 Labeled Statements
- 16.2.5 Expression Statements
- 16.2.6 if Statements
- 16.2.7 switch Statements
- 16.2.8 while Statements
- 16.2.9 do Statements
- 16.2.10 for Statements
- 16.2.10.1 Initialization Part
- 16.2.10.2 Incrementation Part
- 16.2.11 break, continue, return, and throw Statements
- 16.2.12 synchronized Statements
- 16.2.13 try Statements
17 Threads and Locks
- 17.1 Terminology and Framework
- 17.2 Execution Order and Consistency
- 17.3 Rules about Variables
- 17.4 Nonatomic Treatment of Double and Long Variables
- 17.5 Rules about Locks
- 17.6 Rules about the Interaction of Locks and Variables
- 17.7 Rules for Volatile Variables
- 17.8 Prescient Store Operations
- 17.9 Discussion
- 17.10 Example: Possible Swap
- 17.11 Example: Out-of-Order Writes
- 17.12 Threads
- 17.13 Locks and Synchronization
- 17.14 Wait Sets and Notification
18 Documentation Comments
- 18.1 The Text of a Documentation Comment
- 18.2 HTML in a Documentation Comment
- 18.3 Summary Sentence and General Description
- 18.4 Tagged Paragraphs
- 18.4.1 The @see Tag
- 18.4.2 The @author Tag
- 18.4.3 The @version Tag
- 18.4.4 The @param Tag
- 18.4.5 The @return Tag
- 18.4.6 The @exception Tag
- 18.5 Example
19 LALR(1) Java Grammar
- 19.1 Grammatical Difficulties
- 19.1.1 Problem #1: Names Too Specific
- 19.1.2 Problem #2: Modifiers Too Specific
- 19.1.3 Problem #3: Field Declaration versus Method Declaration
- 19.1.4 Problem #4: Array Type versus Array Access
- 19.1.5 Problem #5: Cast versus Parenthesized Expression
- 19.2 Productions from §2.3: The Syntactic Grammar
- 19.3 Productions from §3: Lexical Structure
- 19.4 Productions from §4: Types, Values, and Variables
- 19.5 Productions from §6: Names
- 19.6 Productions from §7: Packages
- 19.7 Productions Used Only in the LALR(1) Grammar
- 19.8 Productions from §8: Class Declarations
- 19.8.1 Productions from §8.1: Class Declaration
- 19.8.2 Productions from §8.3: Field Declarations
- 19.8.3 Productions from §8.4: Method Declarations
- 19.8.4 Production from §8.5: Static Initializers
- 19.8.5 Productions from §8.6: Constructor Declarations
- 19.9 Productions from §9: Interface Declarations
- 19.9.1 Productions from §9.1: Interface Declarations
- 19.10 Productions from §10: Arrays
- 19.11 Productions from §14: Blocks and Statements
- 19.12 Productions from §15: Expressions
20 The java.lang Package
- 20.1 The Class java.lang.Object
- 20.2 The Interface java.lang.Cloneable
- 20.3 The Class java.lang.Class
- 20.4 The Class java.lang.Boolean
- 20.5 The Class java.lang.Character
- 20.6 The Class java.lang.Number
- 20.7 The Class java.lang.Integer
- 20.8 The Class java.lang.Long
- 20.9 The Class java.lang.Float
- 20.10 The Class java.lang.Double
- 20.11 The Class java.lang.Math
- 20.12 The Class java.lang.String
- 20.13 The Class java.lang.StringBuffer
- 20.14 The Class java.lang.ClassLoader
- 20.15 The Class java.lang.Process
- 20.16 The Class java.lang.Runtime
- 20.17 The Class java.lang.SecurityManager
- 20.18 The Class java.lang.System
- 20.19 The Interface java.lang.Runnable
- 20.20 The Class java.lang.Thread
- 20.21 The Class java.lang.ThreadGroup
- 20.22 Classes for Exceptions and Errors
- 20.23 The Class java.lang.ExceptionInInitializerError
21 The java.util Package
- 21.1 The Interface java.util.Enumeration
- 21.2 The Class java.util.BitSet
- 21.3 The Class java.util.Date
- 21.4 The Class java.util.Dictionary
- 21.5 The Class java.util.Hashtable
- 21.6 The Class java.util.Properties
- 21.7 The Class java.util.Observable
- 21.8 The Interface java.util.Observer
- 21.9 The Class java.util.Random
- 21.10 The Class java.util.StringTokenizer
- 21.11 The Class java.util.Vector
- 21.12 The Class java.util.Stack
- 21.13 The Class java.util.EmptyStackException
- 21.14 The Class java.util.NoSuchElementException
22 The java.io Package
- 22.1 The Interface java.io.DataInput
- 22.2 The Interface java.io.DataOutput
- 22.3 The Class java.io.InputStream
- 22.4 The Class java.io.FileInputStream
- 22.5 The Class java.io.PipedInputStream
- 22.6 The Class java.io.ByteArrayInputStream
- 22.7 The Class java.io.StringBufferInputStream
- 22.8 The Class java.io.SequenceInputStream
- 22.9 The Class java.io.FilterInputStream
- 22.10 The Class java.io.BufferedInputStream
- 22.11 The Class java.io.DataInputStream
- 22.12 The Class java.io.LineNumberInputStream
- 22.13 The Class java.io.PushbackInputStream
- 22.14 The Class java.io.StreamTokenizer
- 22.15 The Class java.io.OutputStream
- 22.16 The Class java.io.FileOutputStream
- 22.17 The Class java.io.PipedOutputStream
- 22.18 The Class java.io.ByteArrayOutputStream
- 22.19 The Class java.io.FilterOutputStream
- 22.20 The Class java.io.BufferedOutputStream
- 22.21 The Class java.io.DataOutputStream
- 22.22 The Class java.io.PrintStream
- 22.23 The Class java.io.RandomAccessFile
- 22.24 The Class java.io.File
- 22.25 The Interface java.io.FilenameFilter
- 22.26 The Class java.io.FileDescriptor
- 22.27 The Class java.io.IOException
- 22.28 The Class java.io.EOFException
- 22.29 The Class java.io.FileNotFoundException
- 22.30 The Class java.io.InterruptedIOException
- 22.31 The Class java.io.UTFDataFormatException
Index
Colophon
``When I use a word," Humpty Dumpty said,
in rather a scornful tone, "it means just what I
choose it to mean-neither more nor less."
"The question is," said Alice, "whether you
can make words mean so many different things."
"The question is," said Humpty Dumpty,
"which is to be master-that's all."
-Lewis Carroll, Through the Looking Glass
Contents | Prev | Next | Index
Copyright © 1996 Sun Microsystems, Inc. All rights reserved.