The Java language specification

Author(s)

Bibliographic Information

The Java language specification

James Gosling... [et al.]

Addison-Wesley, c2013

Java SE 7 ed

Available at  / 1 libraries

Search this Book/Journal

Note

Includes index

Other authors: Bill Joy, Guy Steele, Gilad Bracha, Alex Buckley

Description and Table of Contents

Description

Written by the inventors of the technology, The Java (R) Language Specification, Java SE 7 Edition, is the definitive technical reference for the Java programming language. The book provides complete, accurate, and detailed coverage of the Java programming language. It fully describes the new features added in Java SE 7, including the try-with-resources statement, multi-catch, precise rethrow, "diamond" syntax, strings-in-switch, and binary literals. The book also includes many explanatory notes, and carefully distinguishes the formal rules of the language from the practical behavior of compilers.

Table of Contents

Preface to the Java SE 7 Edition xvii Preface to the Third Edition xix Preface to the Second Edition xxiii Preface to the First Edition xxv Chapter 1: Introduction 1 1.1 Organization of the Specification 2 1.2 Example Programs 5 1.3 Notation 6 1.4 Relationship to Predefined Classes and Interfaces 6 1.5 References 7 Chapter 2: Grammars 9 2.1 Context-Free Grammars 9 2.2 The Lexical Grammar 9 2.3 The Syntactic Grammar 10 2.4 Grammar Notation 10 Chapter 3: Lexical Structure 15 3.1 Unicode 15 3.2 Lexical Translations 16 3.3 Unicode Escapes 17 3.4 Line Terminators 18 3.5 Input Elements and Tokens 19 3.6 White Space 21 3.7 Comments 21 3.8 Identifiers 23 3.9 Keywords 24 3.10 Literals 25 3.11 Separators 40 3.12 Operators 40 Chapter 4: Types, Values, and Variables 41 4.1 The Kinds of Types and Values 41 4.2 Primitive Types and Values 42 4.3 Reference Types and Values 52 4.4 Type Variables 58 4.5 Parameterized Types 60 4.6 Type Erasure 65 4.7 Reifiable Types 66 4.8 Raw Types 67 4.9 Intersection Types 71 4.10 Subtyping 72 4.11 Where Types Are Used 74 4.12 Variables 75 Chapter 5: Conversions and Promotions 85 5.1 Kinds of Conversion 88 5.2 Assignment Conversion 101 5.3 Method Invocation Conversion 106 5.4 String Conversion 108 5.5 Casting Conversion 108 5.6 Numeric Promotions 117 Chapter 6: Names 121 6.1 Declarations 122 6.2 Names and Identifiers 127 6.3 Scope of a Declaration 130 6.4 Shadowing and Obscuring 133 6.5 Determining the Meaning of a Name 140 6.6 Access Control 152 6.7 Fully Qualified Names and Canonical Names 159 Chapter 7: Packages 163 7.1 Package Members 163 7.2 Host Support for Packages 165 7.3 Compilation Units 167 7.4 Package Declarations 168 7.5 Import Declarations 170 7.6 Top Level Type Declarations 175 Chapter 8: Classes 179 8.1 Class Declarations 181 8.2 Class Members 196 8.3 Field Declarations 201 8.4 Method Declarations 215 8.5 Member Type Declarations 242 8.6 Instance Initializers 243 8.7 Static Initializers 243 8.8 Constructor Declarations 244 8.9 Enums 253 Chapter 9: Interfaces 263 9.1 Interface Declarations 264 9.2 Interface Members 268 9.3 Field (Constant) Declarations 269 9.4 Abstract Method Declarations 271 9.5 Member Type Declarations 274 9.6 Annotation Types 275 9.7 Annotations 285 Chapter 10: Arrays 291 10.1 Array Types 292 10.2 Array Variables 292 10.3 Array Creation 294 10.4 Array Access 294 10.5 Array Store Exception 295 10.6 Array Initializers 297 10.7 Array Members 298 10.8 Class Objects for Arrays 300 10.9 An Array of Characters is Not a String 301 Chapter 11: Exceptions 303 11.1 The Kinds and Causes of Exceptions 304 11.2 Compile-Time Checking of Exceptions 306 11.3 Run-Time Handling of an Exception 311 Chapter 12: Execution 315 12.1 Java Virtual Machine Startup 315 12.2 Loading of Classes and Interfaces 318 12.3 Linking of Classes and Interfaces 320 12.4 Initialization of Classes and Interfaces 322 12.5 Creation of New Class Instances 327 12.6 Finalization of Class Instances 331 12.7 Unloading of Classes and Interfaces 335 12.8 Program Exit 336 Chapter 13: Binary Compatibility 337 13.1 The Form of a Binary 338 13.2 What Binary Compatibility Is and Is Not 343 13.3 Evolution of Packages 344 13.4 Evolution of Classes 344 13.5 Evolution of Interfaces 361 Chapter 14: Blocks and Statements 365 14.1 Normal and Abrupt Completion of Statements 365 14.2 Blocks 367 14.3 Local Class Declarations 367 14.4 Local Variable Declaration Statements 369 14.5 Statements 371 14.6 The Empty Statement 373 14.7 Labeled Statements 373 14.8 Expression Statements 374 14.9 The if Statement 375 14.10 The assert Statement 376 14.11 The switch Statement 379 14.12 The while Statement 383 14.13 The do Statement 385 14.14 The for Statement 387 14.15 The break Statement 392 14.16 The continue Statement 394 14.17 The return Statement 396 14.18 The throw Statement 397 14.19 The synchronized Statement 399 14.20 The try statement 400 14.21 Unreachable Statements 411 Chapter 15: Expressions 417 15.1 Evaluation, Denotation, and Result 417 15.2 Variables as Values 418 15.3 Type of an Expression 418 15.4 FP-strict Expressions 419 15.5 Expressions and Run-Time Checks 419 15.6 Normal and Abrupt Completion of Evaluation 421 15.7 Evaluation Order 423 15.8 Primary Expressions 428 15.9 Class Instance Creation Expressions 432 15.10 Array Creation Expressions 442 15.11 Field Access Expressions 446 15.12 Method Invocation Expressions 451 15.13 Array Access Expressions 490 15.14 Postfix Expressions 493 15.15 Unary Operators 495 15.16 Cast Expressions 499 15.17 Multiplicative Operators 500 15.18 Additive Operators 506 15.19 Shift Operators 511 15.20 Relational Operators 512 15.21 Equality Operators 514 15.22 Bitwise and Logical Operators 517 15.23 Conditional-And Operator 519 15.24 Conditional-Or Operator 520 15.25 Conditional Operator 521 15.26 Assignment Operators 523 15.27 Expression 535 15.28 Constant Expressions 536 Chapter 16: Definite Assignment 539 16.1 Definite Assignment and Expressions 545 16.2 Definite Assignment and Statements 549 16.3 Definite Assignment and Parameters 558 16.4 Definite Assignment and Array Initializers 558 16.5 Definite Assignment and Enum Constants 559 16.6 Definite Assignment and Anonymous Classes 559 16.7 Definite Assignment and Member Types 559 16.8 Definite Assignment and Static Initializers 560 16.9 Definite Assignment, Constructors, and Instance Initializers 560 Chapter 17: Threads and Locks 563 17.1 Synchronization 564 17.2 Wait Sets and Notification 564 17.3 Sleep and Yield 568 17.4 Memory Model 569 17.5 final Field Semantics 584 17.6 Word Tearing 589 17.7 Non-atomic Treatment of double and long 590 Chapter 18: Syntax 591 Index 607 A Limited License Grant 641

by "Nielsen BookData"

Details

Page Top