开发工具:
文件大小: 458kb
下载次数: 0
上传时间: 2010-02-21
详细说明: Java Language Specification Third Edition ========================================= 1 Introduction 1.1 Example Programs 1.2 Notation 1.3 Relationship to Predefined Classes and Interfaces 1.4 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 The Kinds of Types and Values 4.2 Primitive Types and Values 4.2.1 Integral Types and Values 4.2.2 Integer Operations 4.2.3 Floating-Point Types, Formats, and Values 4.2.4 Floating-Point Operations 4.2.5 The boolean Type and boolean Values 4.3 Reference Types and 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 Type Variables 4.5 Parameterized Types 4.5.1 Type Arguments and Wildcards 4.5.1.1 Type Argument Containment and Equivalence 4.5.2 Members and Constructors of Parameterized Types 4.6 Type Erasure 4.7 Reifiable Types 4.8 Raw Types 4.9 Intersection Types 4.10 Subtyping 4.10.1 Subtyping among Primitive Types 4.10.2 Subtyping among Class and Interface Types 4.10.3 Subtyping among Array Types 4.11 Where Types Are Used 4.12 Variables 4.12.1 Variables of Primitive Type 4.12.2 Variables of Reference Type 4.12.2.1 Heap Pollution 4.12.3 Kinds of Variables 4.12.4 final Variables 4.12.5 Initial Values of Variables 4.12.6 Types, Classes, and Interfaces 5 Conversions and Promotions 5.1 Kinds of Conversion 5.1.1 Identity Conversions 5.1.2 Widening Primitive Conversion 5.1.3 Narrowing Primitive Conversions 5.1.4 Widening and Narrowing Primitive Conversions 5.1.5 Widening Reference Conversions 5.1.6 Narrowing Reference Conversions 5.1.7 Boxing Conversion 5.1.8 Unboxing Conversion 5.1.9 Unchecked Conversion 5.1.10 Capture Conversion 5.1.11 String Conversions 5.1.12 Forbidden Conversions 5.1.13 Value Set Conversion 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 6.3 6.3.1 Shadowing Declarations 6.3.2 Obscured Declarations 6.4 Members and Inheritance 6.4.1 The Members of Type Variables, Parameterized Types, Raw Types and Intersection Types 6.4.2 The Members of a Package 6.4.3 The Members of a Class Type 6.4.4 The Members of an Interface Type 6.4.5 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 PackageOrTypeNames 6.5.4.1 Simple PackageOrTypeNames 6.5.4.2 Qualified PackageOrTypeNames 6.5.5 Meaning of Type Names 6.5.5.1 Simple Type Names 6.5.5.2 Qualified Type Names 6.5.6 Meaning of Expression Names 6.5.6.1 Simple Expression Names 6.5.6.2 Qualified Expression Names 6.5.7 Meaning of Method Names 6.5.7.1 Simple Method Names 6.5.7.2 Qualified Method Names 6.6 Access Control 6.6.1 Determining Accessibility 6.6.2 Details on protected Access 6.6.2.1 Access to a protected Member 6.6.2.2 Qualified Access to a protected Constructor 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 and Canonical Names 6.8 Naming Conventions 6.8.1 Package Names 6.8.2 Class and Interface Type Names 6.8.3 Type Variable Names 6.8.4 Method Names 6.8.5 Field Names 6.8.6 Constant Names 6.8.7 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.1.1 Package Annotations 7.4.2 Unnamed Packages 7.4.3 Observability of a Package 7.4.4 Scope of a Package Declaration 7.5 Import Declarations 7.5.1 Single-Type-Import Declaration 7.5.2 Type-Import-on-Demand Declaration 7.5.3 Single Static Import Declaration 7.5.4 Static-Import-on-Demand Declaration 7.5.5 Automatic Imports 7.5.6 A Strange Example 7.6 Top Level Type Declarations 7.7 Unique Package Names 8 Classes 8.1 Class Declaration 8.1.1 Class Modifiers 8.1.1.1 abstract Classes 8.1.1.2 final Classes 8.1.1.3 strictfp Classes 8.1.2 Generic Classes and Type Parameters 8.1.3 Inner Classes and Enclosing Instances 8.1.4 Superclasses and Subclasses 8.1.5 Superinterfaces 8.1.6 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.2.3 Restrictions on the use of Fields during Initialization 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 strictfp Methods 8.4.3.6 synchronized Methods 8.4.4 Generic Methods 8.4.5 Method Return Type 8.4.6 Method Throws 8.4.7 Method Body 8.4.8 Inheritance, Overriding, and Hiding 8.4.8.1 Overriding (by Instance Methods) 8.4.8.2 Hiding (by Class Methods) 8.4.8.3 Requirements in Overriding and Hiding 8.4.8.4 Inheriting Methods with Override-Equivalent Signatures 8.4.9 Overloading 8.4.10 Examples of Method Declarations 8.4.10.1 Example: Overriding 8.4.10.2 Example: Overloading, Overriding, and Hiding 8.4.10.3 Example: Incorrect Overriding 8.4.10.4 Example: Overriding versus Hiding 8.4.10.5 Example: Invocation of Hidden Class Methods 8.4.10.6 Large Example of Overriding 8.4.10.7 Example: Incorrect Overriding because of Throws 8.5 Member Type Declarations 8.5.1 Modifiers 8.5.2 Static Member Type Declarations 8.6 Instance Initializers 8.7 Static Initializers 8.8 Constructor Declarations 8.8.1 Formal Parameters and Formal Type Parameter 8.8.2 Constructor Signature 8.8.3 Constructor Modifiers 8.8.4 Generic Constructors 8.8.5 Constructor Throws 8.8.6 The Type of a Constructor 8.8.7 Constructor Body 8.8.7.1 Explicit Constructor Invocations 8.8.8 Constructor Overloading 8.8.9 Default Constructor 8.8.10 Preventing Instantiation of a Class 8.9 Enums 9 Interfaces 9.1 Interface Declarations 9.1.1 Interface Modifiers 9.1.1.1 abstract Interfaces 9.1.1.2 strictfp Interfaces 9.1.2 Generic Interfaces and Type Parameters 9.1.3 Superinterfaces and Subinterfaces 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 9.5 Member Type Declarations 9.6 Annotation Types 9.6.1 Predefined Annotation Types 9.6.1.1 Target 9.6.1.2 Retention 9.6.1.3 Inherited 9.6.1.4 Override 9.6.1.5 SuppressWarnings 9.6.1.6 Deprecated 9.7 Annotations 10 Arrays 10.1 Array Types 10.2 Array Variables 10.3 Array Creation 10.4 Array Access 10.5 Arrays: A Simple Example 10.6 Array Initializers 10.7 Array Members 10.8 Class Objects for Arrays 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 Exception Analysis of Expressions 11.2.2 Exception Analysis of Statements 11.2.3 Exception Checking 11.2.4 Why Errors are Not Checked 11.2.5 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 Loading and Linkage Errors 11.5.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.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.4 Initialization of Classes and Interfaces 12.4.1 When Initialization Occurs 12.4.2 Detailed Initialization Procedure 12.4.3 Initialization: Implications for Code Generation 12.5 Creation of New Class Instances 12.6 Finalization of Class Instances 12.6.1 Implementing Finalization 12.6.1.1 Interaction with the Memory Model 12.6.2 Finalizer Invocations are Not Ordered 12.7 Unloading of Classes and Interfaces 12.8 Program Exit 13 Binary Compatibility 13.1 The Form of a 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 Formal Type Parameters 13.4.6 Class Body and Member Declarations 13.4.7 Access to Members and Constructors 13.4.8 Field Declarations 13.4.9 final Fields and Constants 13.4.10 static Fields 13.4.11 transient Fields 13.4.12 Method and Constructor Declarations 13.4.13 Method and Constructor Formal Type Parameters 13.4.14 Method and Constructor Parameters 13.4.15 Method Result Type 13.4.16 abstract Methods 13.4.17 final Methods 13.4.18 native Methods 13.4.19 static Methods 13.4.20 synchronized Methods 13.4.21 Method and Constructor Throws 13.4.22 Method and Constructor Body 13.4.23 Method and Constructor Overloading 13.4.24 Method Overriding 13.4.25 Static Initializers 13.4.26 Evolution of Enums 13.5 Evolution of Interfaces 13.5.1 public Interfaces 13.5.2 Superinterfaces 13.5.3 The Interface Members 13.5.4 Interface Formal Type Parameters 13.5.5 Field Declarations 13.5.6 Abstract Method Declarations 13.5.7 Evolution of Annotation Types 14 Blocks and Statements 14.1 Normal and Abrupt Completion of Statements 14.2 Blocks 14.3 Local Class Declarations 14.4 Local Variable Declaration Statements 14.4.1 Local Variable Declarators and Types 14.4.2 Scope of Local Variable Declarations 14.4.3 Shadowing of Names by Local Variables 14.4.4 Execution of Local Variable Declarations 14.5 Statements 14.6 The Empty Statement 14.7 Labeled Statements 14.8 Expression Statements 14.9 The if Statement 14.9.1 The if-then Statement 14.9.2 The if-then-else Statement 14.10 The assert Statement 14.11 The switch Statement 14.12 The while Statement 14.12.1 Abrupt Completion 14.13 The do Statement 14.13.1 Abrupt Completion 14.13.2 Example of do statement 14.14 The for Statement 14.14.1 The basic for Statement 14.14.1.1 Initialization of for statement 14.14.1.2 Iteration of for statement 14.14.1.3 Abrupt Completion of for statement 14.14.2 The enhanced for statement 14.15 The break Statement 14.16 The continue Statement 14.17 The return Statement 14.18 The throw Statement 14.19 The synchronized Statement 14.20 The try statement 14.20.1 Execution of try-catch 14.20.2 Execution of try-catch-finally 14.21 Unreachable Statements 15 Expressions 15.1 Evaluation, Denotation, and Result 15.2 Variables as Values 15.3 Type of an Expression 15.4 FP-strict Expressions 15.5 Expressions and Run-Time Checks 15.6 Normal and Abrupt Completion of Evaluation 15.7 Evaluation Order 15.7.1 Evaluate Left-Hand Operand First 15.7.2 Evaluate Operands before Operation 15.7.3 Evaluation Respects Parentheses and Precedence 15.7.4 Argument Lists are Evaluated Left-to-Right 15.7.5 Evaluation Order for Other Expressions 15.8 Primary Expressions 15.8.1 Lexical Literals 15.8.2 Class Literals 15.8.3 this 15.8.4 Qualified this 15.8.5 Parenthesized Expressions 15.9 Class Instance Creation Expressions 15.9.1 Determining the Class being Instantiated 15.9.2 Determining Enclosing Instances 15.9.3 Choosing the Constructor and its Arguments 15.9.4 Run-time Evaluation of Class Instance Creation Expressions 15.9.5 Anonymous Class Declarations 15.9.5.1 Anonymous Constructors 15.9.6 Example: Evaluation Order and Out-of-Memory Detection 15.10 Array Creation Expressions 15.10.1 Run-time Evaluation of Array Creation Expressions 15.10.2 Example: Array Creation Evaluation Order 15.10.3 Example: Array Creation and Out-of-Memory Detection 15.11 Field Access Expressions 15.11.1 Field Access Using a Primary 15.11.2 Accessing Superclass Members using super 15.12 Method Invocation Expressions 15.12.1 Compile-Time Step 1: Determine Class or Interface to Search 15.12.2 Compile-Time Step 2: Determine Method Signature 15.12.2.1 Identify Potentially Applicable Methods 15.12.2.2 Phase 1: Identify Matching Arity Methods Applicable by Subtyping 15.12.2.3 Phase 2: Identify Matching Arity Methods Applicable by Method Invocation Conversion 15.12.2.4 Phase 3: Identify Applicable Variable Arity Methods 15.12.2.5 Choosing the Most Specific Method 15.12.2.6 Method Result and Throws Types 15.12.2.7 Inferring Type Arguments Based on Actual Arguments 15.12.2.8 Inferring Unresolved Type Arguments 15.12.2.9 Examples 15.12.2.10 Example: Overloading Ambiguity 15.12.2.11 Example: Return Type Not Considered 15.12.2.12 Example: Compile-Time Resolution 15.12.3 Compile-Time Step 3: Is the Chosen Method Appropriate? 15.12.4 Runtime Evaluation of Method Invocation 15.12.4.1 Compute Target Reference (If Necessary) 15.12.4.2 Evaluate Arguments 15.12.4.3 Check Accessibility of Type and Method 15.12.4.4 Locate Method to Invoke 15.12.4.5 Create Frame, Synchronize, Transfer Control 15.12.4.6 Example: Target Reference and Static Methods 15.12.4.7 Example: Evaluation Order 15.12.4.8 Example: Overriding 15.12.4.9 Example: Method Invocation using super 15.13 Array Access Expressions 15.13.1 Runtime Evaluation of Array Access 15.13.2 Examples: Array Access Evaluation Order 15.14 Postfix Expressions 15.14.1 Expression Names 15.14.2 Postfix Increment Operator ++ 15.14.3 Postfix Decrement Operator -- 15.15 Unary Operators 15.15.1 Prefix Increment Operator ++ 15.15.2 Prefix Decrement Operator -- 15.15.3 Unary Plus Operator + 15.15.4 Unary Minus Operator - 15.15.5 Bitwise Complement Operator ~ 15.15.6 Logical Complement Operator ! 15.16 Cast Expressions 15.17 Multiplicative Operators 15.17.1 Multiplication Operator * 15.17.2 Division Operator / 15.17.3 Remainder Operator % 15.18 Additive Operators 15.18.1 String Concatenation Operator + 15.18.1.1 String Conversion 15.18.1.2 Optimization of String Concatenation 15.18.1.3 Examples of String Concatenation 15.18.2 Additive Operators (+ and -) for Numeric Types 15.19 Shift Operators 15.20 Relational Operators 15.20.1 Numerical Comparison Operators <, <=, >, and >= 15.20.2 Type Comparison Operator instanceof 15.21 Equality Operators 15.21.1 Numerical Equality Operators == and != 15.21.2 Boolean Equality Operators == and != 15.21.3 Reference Equality Operators == and != 15.22 Bitwise and Logical Operators 15.22.1 Integer Bitwise Operators &, ^, and | 15.22.2 Boolean Logical Operators &, ^, and | 15.23 Conditional-And Operator && 15.24 Conditional-Or Operator || 15.25 Conditional Operator ? : 15.26 Assignment Operators 15.26.1 Simple Assignment Operator = 15.26.2 Compound Assignment Operators 15.27 Expression 15.28 Constant Expression 16 Definite Assignment 16.1 Definite Assignment and Expressions 16.1.1 Boolean Constant Expressions 16.1.2 The Boolean Operator && 16.1.3 The Boolean Operator || 16.1.4 The Boolean Operator ! 16.1.5 The Boolean Operator ? : 16.1.6 The Conditional Operator ? : 16.1.7 Other Expressions of Type boolean 16.1.8 Assignment Expressions 16.1.9 Operators ++ and -- 16.1.10 Other Expressions 16.2 Definite Assignment and Statements 16.2.1 Empty Statements 16.2.2 Blocks 16.2.3 Local Class Declaration Statements 16.2.4 Local Variable Declaration Statements 16.2.5 Labeled Statements 16.2.6 Expression Statements 16.2.7 if Statements 16.2.8 assert Statements 16.2.9 switch Statements 16.2.10 while Statements 16.2.11 do Statements 16.2.12 for Statements 16.2.12.1 Initialization Part 16.2.12.2 Incrementation Part 16.2.13 break, continue, return, and throw Statements 16.2.14 synchronized Statements 16.2.15 try Statements 16.3 Definite Assignment and Parameters 16.4 Definite Assignment and Array Initializers 16.5 Definite Assignment and Enum Constants 16.6 Definite Assignment and Anonymous Classes 16.7 Definite Assignment and Member Types 16.8 Definite Assignment and Static Initializers 16.9 Definite Assignment, Constructors, and Instance Initializers 17 Threads and Locks 17.1 Locks 17.2 Notation in Examples 17.3 Incorrectly Synchronized Programs Exhibit Surprising Behaviors 17.4 Memory Model 17.4.1 Shared Variables 17.4.2 Actions 17.4.3 Programs and Program Order 17.4.4 Synchronization Order 17.4.5 Happens-before Order 17.4.6 Executions 17.4.7 Well-Formed Executions 17.4.8 Executions and Causality Requirements 17.4.9 Observable Behavior and Nonterminating Executions 17.5 Final Field Semantics 17.5.1 Semantics of Final Fields 17.5.2 Reading Final Fields During Construction 17.5.3 Subsequent Modification of Final Fields 17.5.4 Write Protected Fields 17.6 Word Tearing 17.7 Non-atomic Treatment of double and long 17.8 Wait Sets and Notification 17.8.1 Wait 17.8.2 Notification 17.8.3 Interruptions 17.8.4 Interactions of Waits, Notification and Interruption 17.9 Sleep and Yield 18 Syntax 18.1 The Grammar of the Java Programming Language ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.