The Java Language Specification, Java SE 8 Edition
Alex Buckley, Gilad Bracha, Guy Steele
The Java Language Specification, Java SE 8 Edition
Alex Buckley, Gilad Bracha, Guy Steele
- Producent: Addison Wesley Publishing Company
- Rok produkcji: 2014
- ISBN: 9780133900699
- Ilość stron: 792
- Oprawa: Miękka
Niedostępna
Opis: The Java Language Specification, Java SE 8 Edition - Alex Buckley, Gilad Bracha, Guy Steele
Written by the inventors of the technology, The Java(R) Language Specification, Java SE 8 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 8, including lambda expressions, method references, default methods, type annotations, and repeating annotations. The book also includes many explanatory notes and carefully distinguishes the formal rules of the language from the practical behavior of compilers.Preface to the Java SE 8 Edition xxi Chapter 1: Introduction 1 1.1 Organization of the Specification 2 1.2 Example Programs 6 1.3 Notation 6 1.4 Relationship to Predefined Classes and Interfaces 7 1.5 Feedback 7 1.6 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 19 3.5 Input Elements and Tokens 19 3.6 White Space 20 3.7 Comments 21 3.8 Identifiers 22 3.9 Keywords 24 3.10 Literals 24 3.11 Separators 38 3.12 Operators 38 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 57 4.5 Parameterized Types 59 4.6 Type Erasure 64 4.7 Reifiable Types 64 4.8 Raw Types 66 4.9 Intersection Types 70 4.10 Subtyping 71 4.11 Where Types Are Used 75 4.12 Variables 80 Chapter 5: Conversions and Contexts 91 5.1 Kinds of Conversion 94 5.2 Assignment Contexts 107 5.3 Invocation Contexts 112 5.4 String Contexts 114 5.5 Casting Contexts 114 5.6 Numeric Contexts 124 Chapter 6: Names 129 6.1 Declarations 130 6.2 Names and Identifiers 137 6.3 Scope of a Declaration 139 6.4 Shadowing and Obscuring 142 6.5 Determining the Meaning of a Name 148 6.6 Access Control 161 6.7 Fully Qualified Names and Canonical Names 169 Chapter 7: Packages 173 7.1 Package Members 173 7.3 Compilation Units 177 7.4 Package Declarations 178 7.5 Import Declarations 180 7.6 Top Level Type Declarations 185 Chapter 8: Classes 189 8.1 Class Declarations 191 8.2 Class Members 206 8.3 Field Declarations 211 8.4 Method Declarations 225 8.5 Member Type Declarations 254 8.6 Instance Initializers 255 8.7 Static Initializers 255 8.8 Constructor Declarations 256 8.9 Enum Types 266 Chapter 9: Interfaces 277 9.1 Interface Declarations 278 9.2 Interface Members 282 9.3 Field (Constant) Declarations 283 9.4 Method Declarations 286 9.5 Member Type Declarations 291 9.6 Annotation Types 292 9.7 Annotations 308 9.8 Functional Interfaces 319 9.9 Function Types 323 Chapter 10: Arrays 329 10.1 Array Types 330 10.2 Array Variables 330 10.3 Array Creation 332 10.4 Array Access 332 10.5 Array Store Exception 333 10.6 Array Initializers 335 10.7 Array Members 336 10.8 Class Objects for Arrays 338 10.9 An Array of Characters Is Not a String 339 Chapter 11: Exceptions 341 11.1 The Kinds and Causes of Exceptions 342 11.2 Compile-Time Checking of Exceptions 344 11.3 Run-Time Handling of an Exception 349 Chapter 12: Execution 353 12.1 Java Virtual Machine Startup 353 12.2 Loading of Classes and Interfaces 356 12.3 Linking of Classes and Interfaces 358 12.4 Initialization of Classes and Interfaces 360 12.5 Creation of New Class Instances 365 12.6 Finalization of Class Instances 369 12.7 Unloading of Classes and Interfaces 373 12.8 Program Exit 374 Chapter 13: Binary Compatibility 375 13.1 The Form of a Binary 376 13.2 What Binary Compatibility Is and Is Not 382 13.3 Evolution of Packages 383 13.4 Evolution of Classes 383 13.5 Evolution of Interfaces 400 Chapter 14: Blocks and Statements 405 14.1 Normal and Abrupt Completion of Statements 405 14.2 Blocks 407 14.3 Local Class Declarations 407 14.4 Local Variable Declaration Statements 408 14.5 Statements 410 14.6 The Empty Statement 412 14.7 Labeled Statements 413 14.8 Expression Statements 414 14.9 The if Statement 415 14.10 The assert Statement 416 14.11 The switch Statement 419 14.12 The while Statement 423 14.13 The do Statement 424 14.14 The for Statement 426 14.15 The break Statement 432 14.16 The continue Statement 434 14.17 The return Statement 436 14.18 The throw Statement 437 14.19 The synchronized Statement 439 14.20 The try statement 440 14.21 Unreachable Statements 452 Chapter 15: Expressions 459 15.1 Evaluation, Denotation, and Result 459 15.2 Forms of Expressions 460 15.3 Type of an Expression 461 15.4 FP-strict Expressions 462 15.5 Expressions and Run-Time Checks 462 15.6 Normal and Abrupt Completion of Evaluation 464 15.7 Evaluation Order 466 15.8 Primary Expressions 471 15.9 Class Instance Creation Expressions 476 15.10 Array Creation and Access Expressions 487 15.11 Field Access Expressions 494 15.12 Method Invocation Expressions 499 15.13 Method Reference Expressions 529 15.14 Postfix Expressions 542 15.15 Unary Operators 544 15.16 Cast Expressions 549 15.17 Multiplicative Operators 550 15.18 Additive Operators 556 15.19 Shift Operators 561 15.20 Relational Operators 562 15.21 Equality Operators 565 15.22 Bitwise and Logical Operators 568 15.23 Conditional-And Operator && 570 15.24 Conditional-Or Operator || 570 15.25 Conditional Operator ? : 571 15.26 Assignment Operators 581 15.27 Lambda Expressions 594 15.28 Constant Expressions 605 Chapter 16: Definite Assignment 607 16.1 Definite Assignment and Expressions 613 16.2 Definite Assignment and Statements 617 16.3 Definite Assignment and Parameters 626 16.4 Definite Assignment and Array Initializers 626 16.5 Definite Assignment and Enum Constants 626 16.6 Definite Assignment and Anonymous Classes 627 16.7 Definite Assignment and Member Types 627 16.8 Definite Assignment and Static Initializers 628 16.9 Definite Assignment, Constructors, and Instance Initializers 628 Chapter 17: Threads and Locks 631 17.1 Synchronization 632 17.2 Wait Sets and Notification 632 17.3 Sleep and Yield 636 17.4 Memory Model 637 17.5 final Field Semantics 652 17.6 Word Tearing 657 17.7 Non-Atomic Treatment of double and long 658 Chapter 18: Type Inference 659 18.1 Concepts and Notation 660 18.2 Reduction 663 18.3 Incorporation 673 18.4 Resolution 675 18.5 Uses of Inference 677 Chapter 19: Syntax 689 Index 715 Appendix A: Limited License Grant 755
Szczegóły: The Java Language Specification, Java SE 8 Edition - Alex Buckley, Gilad Bracha, Guy Steele
Tytuł: The Java Language Specification, Java SE 8 Edition
Autor: Alex Buckley, Gilad Bracha, Guy Steele
Producent: Addison Wesley Publishing Company
ISBN: 9780133900699
Rok produkcji: 2014
Ilość stron: 792
Oprawa: Miękka
Waga: 1.2 kg