Symbols
- = operator
-
- assignment conversion, 5.2
- expressions and run-time checks, 15.5, 15.5
- normal and abrupt completion of evaluation, 15.6, 15.6
- @Deprecated, 9.6.3.6
- @Inherited, 9.6.3.3
- @Override, 9.6.3.4
- @Retention, 9.6.3.2
- @SafeVarargs, 9.6.3.7
-
- formal parameters, 8.4.1
- @SuppressWarnings, 9.6.3.5
-
- checked casts and unchecked casts, 5.5.2
- formal parameters, 8.4.1
- inheriting methods with override-equivalent signatures, 8.4.8.4, 8.4.8.4
- requirements in overriding and hiding, 8.4.8.3
- unchecked conversion, 5.1.9
- @Target, 9.6.3.1
A
- abrupt completion of do statement, 14.13.1
-
- do statement, 14.13
- abrupt completion of for statement, 14.14.1.3
-
- iteration of for statement, 14.14.1.2
- abrupt completion of while statement, 14.12.1
-
- while statement, 14.12
- abstract classes, 8.1.1.1, 13.4.1
-
- abstract methods, 8.4.3.1
- anonymous class declarations, 15.9.5
- array creation expressions, 15.10
- final classes, 8.1.1.2
- resolution of symbolic references, 12.3.3
- superinterfaces, 8.1.5
- abstract interfaces, 9.1.1.1
- abstract method declarations, 9.4
-
- abstract classes, 8.1.1.1
- annotations, 9.7
- declarations, 6.1, 6.1
- interface body and member declarations, 9.1.4
- raw types, 4.8
- syntactic classification of a name according to context, 6.5.1, 6.5.1, 6.5.1
- abstract methods, 8.4.3.1, 13.4.16, 13.5.6
-
- abstract classes, 8.1.1.1
- access control, 6.6
-
- abstract method declarations, 9.4
- class literals, 15.8.2
- class modifiers, 8.1.1, 8.1.1
- constructor declarations, 8.8
- default constructor, 8.8.9, 8.8.9
- determining the class being instantiated, 15.9.1, 15.9.1, 15.9.1, 15.9.1
- explicit constructor invocations, 8.8.7.1, 8.8.7.1
- field access using a primary, 15.11.1
- identify potentially applicable methods, 15.12.2.1
- import declarations, 7.5
- local class declarations, 14.3
- member type declarations, 8.5
- method modifiers, 8.4.3
- normal annotations, 9.7.1
- objects, 4.3.1
- qualified expression names, 6.5.6.2, 6.5.6.2, 6.5.6.2
- qualified type names, 6.5.5.2, 6.5.5.2
- reference types and values, 4.3
- requirements in overriding and hiding, 8.4.8.3
- shadowing and obscuring, 6.4
- single-static-import declarations, 7.5.3
- single-type-import declarations, 7.5.1
- static-import-on-demand declarations, 7.5.4
- superclasses and subclasses, 8.1.4
- superinterfaces, 8.1.5
- superinterfaces and subinterfaces, 9.1.3
- top level type declarations, 7.6
- type-import-on-demand declarations, 7.5.2
- access to a protected member, 6.6.2.1
- access to members and constructors, 13.4.7
-
- resolution of symbolic references, 12.3.3
- accessing superclass members using super, 15.11.2
-
- field declarations, 8.3
- initialization of fields in interfaces, 9.3.1
- initializers for class variables, 8.3.2.1
- initializers for instance variables, 8.3.2.2
- instance initializers, 8.6
- static methods, 8.4.3.2
- syntactic classification of a name according to context, 6.5.1
- actions, 17.4.2
-
- synchronization order, 17.4.4
- additive operators, 15.18
-
- constant expressions, 15.28
- integer operations, 4.2.2
- additive operators (+ and -) for numeric types, 15.18.2
-
- binary numeric promotion, 5.6.2
- floating-point operations, 4.2.4
- an array of characters is not a String, 10.9
- annotation type elements, 9.6.1
-
- annotation types, 9.6
- annotation types, 9.6
-
- abstract method declarations, 9.4
- annotations, 9.7, 9.7
- class modifiers, 8.1.1
- constructor modifiers, 8.8.3
- enum constants, 8.9.1
- field (constant) declarations, 9.3
- field modifiers, 8.3.1
- formal parameters, 8.4.1
- interface declarations, 9.1
- interface modifiers, 9.1.1
- method modifiers, 8.4.3
- named packages, 7.4.1
- syntactic classification of a name according to context, 6.5.1
- annotations, 9.7
-
- abstract method declarations, 9.4
- annotation types, 9.6
- class modifiers, 8.1.1
- constructor modifiers, 8.8.3
- defaults for annotation type elements, 9.6.2, 9.6.2
- enum constants, 8.9.1
- evaluation, denotation, and result, 15.1
- field (constant) declarations, 9.3
- field modifiers, 8.3.1
- formal parameters, 8.4.1
- interface modifiers, 9.1.1
- local variable declarators and types, 14.4.1
- member type declarations, 8.5
- method modifiers, 8.4.3
- named packages, 7.4.1
- syntactic classification of a name according to context, 6.5.1, 6.5.1, 6.5.1
- anonymous class declarations, 15.9.5
-
- class instance creation
expressions, 15.9, 15.9
- class modifiers, 8.1.1
- definite assignment and anonymous classes, 16.6
- enum constants, 8.9.1
- form of a binary, 13.1
- initialization of fields in interfaces, 9.3.1
- inner classes and enclosing instances, 8.1.3
- syntactic classification of a name according to context, 6.5.1
- anonymous constructors, 15.9.5.1
-
- choosing the constructor and its arguments, 15.9.3
- argument lists are evaluated left-to-right, 15.7.4
- array access, 10.4
- array access expressions, 15.13
-
- array access, 10.4
- assignment operators, 15.26
- compound assignment operators, 15.26.2
- expressions and run-time checks, 15.5, 15.5
- normal and abrupt completion of evaluation, 15.6, 15.6
- simple assignment operator =, 15.26.1
- syntactic classification of a name according to context, 6.5.1
- unary numeric promotion, 5.6.1
- array creation, 10.3
- array creation expressions, 15.10
-
- array creation, 10.3
- array initializers, 10.6
- initial values of variables, 4.12.5
- kinds of variables, 4.12.3
- normal and abrupt completion of evaluation, 15.6, 15.6
- objects, 4.3.1
- syntactic classification of a name according to context, 6.5.1
- unary numeric promotion, 5.6.1
- array initializers, 10.6
-
- array creation, 10.3
- definite assignment and array initializers, 16.4
- normal and abrupt completion of evaluation, 15.6
- normal annotations, 9.7.1
- objects, 4.3.1
- run-time evaluation of array creation expressions, 15.10.1
- array members, 10.7
-
- declarations, 6.1, 6.1
- happens-before order, 17.4.5
- array store exception, 10.5
-
- array variables, 10.2
- assignment conversion, 5.2
- expressions and run-time checks, 15.5, 15.5
- normal and abrupt completion of evaluation, 15.6
- variables, 4.12
- array types, 10.1
-
- enhanced for statement, 14.14.2
- raw types, 4.8
- reifiable types, 4.7
- array variables, 10.2
-
- enhanced for statement, 14.14.2
- formal parameters, 8.4.1
- arrays, 10
-
- annotation type elements, 9.6.1
- array creation expressions, 15.10
- kinds of variables, 4.12.3
- reference types and values, 4.3
- when reference types are the same, 4.3.4
- assert statement, 14.10
-
- assert statements, 16.2.8
- detailed initialization procedure, 12.4.2
- when initialization occurs, 12.4.1
- assert statements, 16.2.8
- assignment conversion, 5.2
-
- array initializers, 10.6
- array store exception, 10.5
- array variables, 10.2
- execution of try-catch, 14.20.1
- expressions and run-time checks, 15.5, 15.5
- inferring unresolved type arguments, 15.12.2.8
- normal annotations, 9.7.1
- return statement, 14.17
- simple assignment operator =, 15.26.1, 15.26.1
- switch statement, 14.11
- throw statement, 14.18, 14.18
- type of an expression, 15.3
- variables, 4.12
- assignment expressions, 16.1.8
- assignment operators, 15.26
-
- assignment conversion, 5.2
- assignment expressions, 16.1.8
- evaluation order for other expressions, 15.7.5
- initial values of variables, 4.12.5
- initialization of fields, 8.3.2
- syntactic classification of a name according to context, 6.5.1
- try statement, 14.20
- variables, 4.12
- asynchronous Exceptions, 11.1.3
-
- causes of Exceptions, 11.1.2
B
- basic for statement, 14.14.1
-
- for statements, 16.2.12
- scope of a declaration, 6.3
- basic try-with-resources, 14.20.3.1
-
- extended try-with-resources, 14.20.3.2
- binary compatibility, 13
- binary numeric promotion, 5.6.2
-
- additive operators (+ and -) for numeric types, 15.18.2
- conditional operator ? :, 15.25
- division operator /, 15.17.2
- integer bitwise operators &, ^, and |, 15.22.1
- multiplicative operators, 15.17
- numeric promotions, 5.6
- numerical comparison operators <,
<=, >, and >=, 15.20.1
- numerical equality operators == and !=, 15.21.1
- postfix decrement operator --, 15.14.3
- postfix increment operator ++, 15.14.2
- prefix decrement operator --, 15.15.2
- prefix increment operator ++, 15.15.1
- remainder operator %, 15.17.3
- shift operators, 15.19
- bitwise and logical operators, 15.22
-
- constant expressions, 15.28
- bitwise complement operator ~, 15.15.5
-
- constant expressions, 15.28
- integer operations, 4.2.2
- unary numeric promotion, 5.6.1
- blocks, 14.2, 16.2.2
-
- blocks, 16.2.2
- kinds of variables, 4.12.3
- local class declarations, 14.3
- scope of a declaration, 6.3
- blocks and statements, 14
- boolean constant expressions, 16.1.1
- boolean equality operators == and !=, 15.21.2
-
- boolean type and boolean values, 4.2.5
- boolean literals, 3.10.3
-
- boolean type and boolean values, 4.2.5
- constant expressions, 15.28
- identifiers, 3.8
- lexical literals, 15.8.1
- boolean logical operators &, ^, and |, 15.22.2
-
- boolean type and boolean values, 4.2.5
- conditional-and operator &&, 15.23
- conditional-or operator ||, 15.24
- boolean type and boolean values, 4.2.5
-
- boolean literals, 3.10.3
- lexical literals, 15.8.1
- boxing conversion, 5.1.7
-
- assignment conversion, 5.2
- boolean type and boolean values, 4.2.5
- casting conversion, 5.5
- class literals, 15.8.2
- conditional operator ? :, 15.25, 15.25
- creation of new
class instances, 12.5
- floating-point operations, 4.2.4
- inferring unresolved type arguments, 15.12.2.8
- integer operations, 4.2.2
- method invocation conversion, 5.3
- normal and abrupt completion of evaluation, 15.6
- objects, 4.3.1
- postfix decrement operator --, 15.14.3
- postfix increment operator ++, 15.14.2
- prefix decrement operator --, 15.15.2
- prefix increment operator ++, 15.15.1
- break statement, 14.15
-
- break, continue, return, and throw statements, 16.2.13
- labeled statements, 14.7
- names and identifiers, 6.2, 6.2
- normal and abrupt completion of statements, 14.1
- break, continue, return, and throw statements, 16.2.13
C
- capture conversion, 5.1.10
-
- array access expressions, 15.13
- assignment operators, 15.26
- cast expressions, 15.16
- conditional operator ? :, 15.25
- field access using a primary, 15.11.1
- inferring type arguments based on actual arguments, 15.12.2.7
- inferring unresolved type arguments, 15.12.2.8
- intersection types, 4.9
- method result and throws types, 15.12.2.6, 15.12.2.6
- parameterized types, 4.5
- qualified expression names, 6.5.6.2, 6.5.6.2, 6.5.6.2, 6.5.6.2, 6.5.6.2
- simple expression names, 6.5.6.1
- subtyping among class and interface types, 4.10.2
- cast expressions, 15.16
-
- array types, 10.1
- casting conversion, 5.5
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- constant expressions, 15.28
- expressions and run-time checks, 15.5, 15.5
- floating-point operations, 4.2.4
- happens-before order, 17.4.5
- integer operations, 4.2.2
- normal and abrupt completion of evaluation, 15.6
- objects, 4.3.1
- syntactic classification of a name according to context, 6.5.1
- type comparison operator instanceof, 15.20.2
- unary operators, 15.15
- casting conversion, 5.5
-
- cast expressions, 15.16
- expressions and run-time checks, 15.5, 15.5
- happens-before order, 17.4.5
- objects, 4.3.1
- reference equality operators == and !=, 15.21.3
- casting conversions to primitive types, 5.5
- casting conversions to reference types, 5.5
- causes of Exceptions, 11.1.2
- character literals, 3.10.4
-
- comments, 3.7
- constant expressions, 15.28
- escape sequences for character and String literals, 3.10.6
- lexical literals, 15.8.1
- unicode, 3.1
- check accessibility of type and method, 15.12.4.3
- checked casts and unchecked casts, 5.5.2
-
- variables of reference type, 4.12.2
- checked casts at run time, 5.5.3
-
- checked casts and unchecked casts, 5.5.2
- choosing the constructor and its arguments, 15.9.3
- choosing the most specific method, 15.12.2.5
-
- compile-time step 2: determine method Signature, 15.12.2
- method and constructor overloading, 13.4.23
- phase 1: identify matching arity methods applicable by subtyping, 15.12.2.2
- phase 2: identify matching arity methods applicable by method invocation conversion, 15.12.2.3
- phase 3: identify applicable variable arity methods, 15.12.2.4
- class body and member declarations, 8.1.6, 13.4.6
-
- class members, 8.2
- scope of a declaration, 6.3
- what binary compatibility is and is not, 13.2
- class declarations, 8.1
-
- declarations, 6.1
- types, classes, and interfaces, 4.12.6
- class instance creation
expressions, 15.9
-
- abstract classes, 8.1.1.1
- constructor declarations, 8.8, 8.8
- constructor overloading, 8.8.8
- creation of new
class instances, 12.5
- exception analysis of expressions, 11.2.1
- form of a binary, 13.1
- initial values of variables, 4.12.5, 4.12.5
- instance initializers, 8.6
- kinds of variables, 4.12.3
- method invocation conversion, 5.3
- names and identifiers, 6.2
- normal and abrupt completion of evaluation, 15.6
- objects, 4.3.1, 4.3.1
- return statement, 14.17
- run-time handling of an exception, 11.3
- String conversion, 5.1.11
- syntactic classification of a name according to context, 6.5.1, 6.5.1, 6.5.1
- types, classes, and interfaces, 4.12.6
- class literals, 15.8.2
-
- normal annotations, 9.7.1
- syntactic classification of a name according to context, 6.5.1
- class loading
-
- causes of Exceptions, 11.1.2
- class literals, 15.8.2
- load the class test, 12.1.1
- superclasses and subclasses, 8.1.4
- superinterfaces and subinterfaces, 9.1.3
- class members, 8.2
-
- declarations, 6.1
- members and constructors of parameterized types, 4.5.2
- class modifiers, 8.1.1
-
- annotations, 9.7
- anonymous class declarations, 15.9.5
- local class declarations, 14.3
- reference type casting, 5.5.1, 5.5.1, 5.5.1
- top level type declarations, 7.6
- class Object, 4.3.2
-
- checked casts at run time, 5.5.3, 5.5.3
- class objects for arrays, 10.8
-
- types, classes, and interfaces, 4.12.6
- class String, 4.3.3
-
- lexical literals, 15.8.1
- literals, 3.10
- objects, 4.3.1
- String literals, 3.10.5, 3.10.5
- class type parameters, 13.4.5
- classes, 8
-
- intersection types, 4.9
- local class declarations, 14.3
- package members, 7.1
- qualified expression names, 6.5.6.2
- reclassification of contextually ambiguous names, 6.5.2
- reference types and values, 4.3
- top level type declarations, 7.6
- comments, 3.7
-
- input elements and tokens, 3.5, 3.5
- lexical grammar, 2.2
- lexical translations, 3.2
- line terminators, 3.4
- unicode, 3.1
- compilation units, 7.3
-
- determining accessibility, 6.6.1
- host support for packages, 7.2
- identify potentially applicable methods, 15.12.2.1
- observability of a package, 7.4.3
- package members, 7.1
- reclassification of contextually ambiguous names, 6.5.2, 6.5.2
- scope of a declaration, 6.3
- shadowing, 6.4.1
- syntactic grammar, 2.3
- compile-time checking of Exceptions, 11.2
-
- exception checking, 11.2.3
- compile-time step 1: determine class or interface to search, 15.12.1
-
- class Object, 4.3.2
- identify potentially applicable methods, 15.12.2.1
- raw types, 4.8
- compile-time step 2: determine method Signature, 15.12.2
-
- choosing the constructor and its arguments, 15.9.3, 15.9.3
- compile-time step 1: determine class or interface to search, 15.12.1
- enum constants, 8.9.1
- overloading, 8.4.9
- what binary compatibility is and is not, 13.2
- compile-time step 3: is the chosen method appropriate?, 15.12.3
-
- check accessibility of type and method, 15.12.4.3
- choosing the most specific method, 15.12.2.5
- create frame, synchronize, transfer control, 15.12.4.5
- form of a binary, 13.1
- locate method to invoke, 15.12.4.4, 15.12.4.4
- method invocation expressions, 15.12
- compound assignment operators, 15.26.2
-
- evaluate left-hand operand first, 15.7.1
- compute target reference (if necessary), 15.12.4.1
- conditional operator ? :, 15.25, 16.1.5, 16.1.6
-
- binary numeric promotion, 5.6.2
- boolean type and boolean values, 4.2.5, 4.2.5
- conditional operator ? :, 16.1.5, 16.1.6
- constant expressions, 15.28
- floating-point operations, 4.2.4
- integer operations, 4.2.2
- normal annotations, 9.7.1
- objects, 4.3.1
- conditional-and operator &&, 15.23, 16.1.2
-
- boolean type and boolean values, 4.2.5
- conditional-and operator &&, 16.1.2
- constant expressions, 15.28
- conditional-or operator ||, 15.24, 16.1.3
-
- boolean type and boolean values, 4.2.5
- conditional-or operator ||, 16.1.3
- constant expressions, 15.28
- constant expressions, 15.28
-
- assignment conversion, 5.2
- boolean constant expressions, 16.1.1
- class String, 4.3.3
- conditional operator ? :, 15.25, 15.25
- creation of new
class instances, 12.5
- detailed initialization procedure, 12.4.2
- final fields and constants, 13.4.9
- final variables, 4.12.4
- fp-strict expressions, 15.4
- initialization of fields in interfaces, 9.3.1, 9.3.1
- initializers for class variables, 8.3.2.1
- normal annotations, 9.7.1
- objects, 4.3.1
- String concatenation operator +, 15.18.1
- String literals, 3.10.5
- subsequent modification of final fields, 17.5.3
- switch statement, 14.11
- unreachable statements, 14.21, 14.21, 14.21
- constructor body, 8.8.7
-
- constructor declarations, 8.8
- definite assignment, constructors, and instance initializers, 16.9
- initial values of variables, 4.12.5
- inner classes and enclosing instances, 8.1.3
- kinds of variables, 4.12.3
- this, 15.8.3
- constructor declarations, 8.8
-
- class body and member declarations, 8.1.6
- creation of new
class instances, 12.5
- declarations, 6.1
- final fields, 8.3.1.2
- raw types, 4.8
- return statement, 14.17, 14.17
- run-time evaluation of class instance creation expressions, 15.9.4
- simple expression names, 6.5.6.1
- constructor modifiers, 8.8.3
-
- annotations, 9.7
- constructor overloading, 8.8.8
- constructor Signature, 8.8.2
-
- form of a binary, 13.1
- constructor throws, 8.8.5
-
- compile-time checking of Exceptions, 11.2
- syntactic classification of a name according to context, 6.5.1
- throw statement, 14.18
- context-free grammars, 2.1
-
- compilation units, 7.3
- continue statement, 14.16
-
- break, continue, return, and throw statements, 16.2.13
- labeled statements, 14.7
- names and identifiers, 6.2, 6.2
- normal and abrupt completion of statements, 14.1
- conversions and promotions, 5
- create frame, synchronize, transfer control, 15.12.4.5
- creation of new
class instances, 12.5
-
- constructor declarations, 8.8
- initialization of fields, 8.3.2
- instance initializers, 8.6
- run-time evaluation of class instance creation expressions, 15.9.4
- static fields, 8.3.1.1
- String concatenation operator +, 15.18.1
- when initialization occurs, 12.4.1
D
- declarations, 6.1
-
- names and identifiers, 6.2
- default constructor, 8.8.9
-
- method and constructor declarations, 13.4.12
- defaults for annotation type elements, 9.6.2
- definite assignment, 16
-
- assignment operators, 15.26
- final variables, 4.12.4, 4.12.4
- initial values of variables, 4.12.5
- inner classes and enclosing instances, 8.1.3
- kinds of variables, 4.12.3
- parenthesized expressions, 15.8.5
- definite assignment and anonymous classes, 16.6
- definite assignment and array initializers, 16.4
- definite assignment and enum constants, 16.5
- definite assignment and expressions, 16.1
- definite assignment and member types, 16.7
- definite assignment and parameters, 16.3
- definite assignment and statements, 16.2
- definite assignment and static initializers, 16.8
-
- definite assignment and enum constants, 16.5
- final fields, 8.3.1.2
- definite assignment, constructors, and instance initializers, 16.9
-
- final fields, 8.3.1.2
- detailed initialization procedure, 12.4.2
-
- final fields and constants, 13.4.9
- form of a binary, 13.1
- initialization of fields, 8.3.2
- initialization of fields in interfaces, 9.3.1, 9.3.1
- initializers for class variables, 8.3.2.1
- simple expression names, 6.5.6.1
- static initializers, 8.7
- throw statement, 14.18
- when initialization occurs, 12.4.1
- details on protected access, 6.6.2
-
- determining accessibility, 6.6.1
- determining accessibility, 6.6.1
- determining enclosing instances, 15.9.2
-
- inner classes and enclosing instances, 8.1.3
- determining the class being instantiated, 15.9.1
-
- enums, 8.9
- determining the meaning of a name, 6.5
-
- class members, 8.2
- interface members, 9.2
- names and identifiers, 6.2
- obscuring, 6.4.2
- division operator /, 15.17.2
-
- compound assignment operators, 15.26.2
- evaluate operands before operation, 15.7.2
- integer operations, 4.2.2
- normal and abrupt completion of evaluation, 15.6
- do statement, 14.13
-
- boolean type and boolean values, 4.2.5
- do statements, 16.2.11
- do statements, 16.2.11
E
- empty statement, 14.6
-
- empty statements, 16.2.1
- empty statements, 16.2.1
- enhanced for statement, 14.14.2
-
- for statements, 16.2.12
- scope of a declaration, 6.3
- enum body declarations, 8.9.2
-
- default constructor, 8.8.9
- enum constants, 8.9.1
-
- definite assignment and enum constants, 16.5
- definite assignment and static initializers, 16.8
- switch statement, 14.11
- enums, 8.9
-
- abstract classes, 8.1.1.1
- abstract methods, 8.4.3.1
- annotation type elements, 9.6.1
- annotations, 9.7
- class declarations, 8.1
- constructor body, 8.8.7
- constructor modifiers, 8.8.3
- declarations, 6.1
- determining the class being instantiated, 15.9.1, 15.9.1
- enums, 8.9
- switch statement, 14.11
- equality operators, 15.21
-
- constant expressions, 15.28
- erasure
-
- assignment conversion, 5.2
- checked casts and unchecked casts, 5.5.2
- checked casts at run time, 5.5.3
- choosing the most specific method, 15.12.2.5
- class type parameters, 13.4.5
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- constructor Signature, 8.8.2
- create frame, synchronize, transfer control, 15.12.4.5
- evaluate arguments, 15.12.4.2
- field declarations, 13.4.8
- form of a binary, 13.1, 13.1, 13.1, 13.1
- inferring type arguments based on actual arguments, 15.12.2.7
- method and constructor formal parameters, 13.4.14
- method and constructor type parameters, 13.4.13
- method invocation conversion, 5.3
- method result and throws types, 15.12.2.6, 15.12.2.6
- method result type, 13.4.15
- method Signature, 8.4.2
- phase 3: identify applicable variable arity methods, 15.12.2.4
- raw types, 4.8
- requirements in overriding and hiding, 8.4.8.3
- type variables, 4.4
- escape sequences for character and String literals, 3.10.6
-
- character literals, 3.10.4
- String literals, 3.10.5
- evaluate arguments, 15.12.4.2
-
- formal parameters, 8.4.1
- variables of reference type, 4.12.2
- evaluate left-hand operand first, 15.7.1
- evaluate operands before operation, 15.7.2
- evaluation order, 15.7
- evaluation order for other expressions, 15.7.5
- evaluation respects parentheses and precedence, 15.7.3
- evaluation, denotation, and result, 15.1
-
- assert statement, 14.10
- evolution of annotation types, 13.5.7
- evolution of classes, 13.4
- evolution of enums, 13.4.26
- evolution of interfaces, 13.5
- evolution of packages, 13.3
- example programs, 1.2
- exception analysis of expressions, 11.2.1
-
- class instance creation
expressions, 15.9
- compile-time checking of Exceptions, 11.2
- method result and throws types, 15.12.2.6
- exception analysis of statements, 11.2.2
-
- compile-time checking of Exceptions, 11.2
- explicit constructor invocations, 8.8.7.1
- method throws, 8.4.6
- throw statement, 14.18
- try statement, 14.20
- exception checking, 11.2.3
-
- compile-time checking of Exceptions, 11.2
- initialization of fields, 8.3.2
- instance initializers, 8.6
- method throws, 8.4.6
- static initializers, 8.7
- throw statement, 14.18, 14.18
- try statement, 14.20
- Exceptions, 11
-
- floating-point operations, 4.2.4
- integer operations, 4.2.2
- normal and abrupt completion of statements, 14.1
- throw statement, 14.18
- execution, 12
- execution of local variable declarations, 14.4.2
- execution of try-catch, 14.20.1
-
- try statement, 14.20
- execution of try-finally and try-catch-finally, 14.20.2
-
- try statement, 14.20
- executions, 17.4.6
-
- well-formed executions, 17.4.7
- executions and causality requirements, 17.4.8
- explicit constructor invocations, 8.8.7.1
-
- anonymous constructors, 15.9.5.1, 15.9.5.1
- constructor body, 8.8.7
- creation of new
class instances, 12.5
- definite assignment, constructors, and instance initializers, 16.9, 16.9
- exception analysis of statements, 11.2.2
- form of a binary, 13.1
- instance initializers, 8.6
- method invocation conversion, 5.3
- syntactic classification of a name according to context, 6.5.1
- expression, 15.27
- expression names, 15.14.1
- expression statements, 14.8, 16.2.6
-
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- evaluation, denotation, and result, 15.1
- expression statements, 16.2.6
- initialization of for statement, 14.14.1.1
- expressions, 15
- expressions and run-time checks, 15.5
- extended try-with-resources, 14.20.3.2
F
- field (constant) declarations, 9.3
-
- annotations, 9.7
- array initializers, 10.6
- array variables, 10.2, 10.2
- declarations, 6.1
- interface body and member declarations, 9.1.4
- kinds of variables, 4.12.3
- obscuring, 6.4.2
- shadowing, 6.4.1
- syntactic classification of a name according to context, 6.5.1
- field access expressions, 15.11
-
- assignment operators, 15.26
- names and identifiers, 6.2
- normal and abrupt completion of evaluation, 15.6
- objects, 4.3.1
- simple assignment operator =, 15.26.1
- static initializers, 8.7
- field access using a primary, 15.11.1
- field declarations, 8.3, 13.4.8, 13.5.5
-
- array initializers, 10.6
- array variables, 10.2, 10.2
- class body and member declarations, 8.1.6
- creation of new
class instances, 12.5
- declarations, 6.1
- field declarations, 13.5.5
- obscuring, 6.4.2
- raw types, 4.8
- reclassification of contextually ambiguous names, 6.5.2
- resolution of symbolic references, 12.3.3
- shadowing, 6.4.1
- simple expression names, 6.5.6.1
- syntactic classification of a name according to context, 6.5.1
- field modifiers, 8.3.1
-
- annotations, 9.7
- final classes, 8.1.1.2, 13.4.2
-
- anonymous class declarations, 15.9.5
- final methods, 8.4.3.3
- superclasses and subclasses, 8.1.4
- verification of the binary representation, 12.3.1
- final field semantics, 17.5
-
- memory model, 17.4
- final fields, 8.3.1.2
- final fields and constants, 13.4.9
-
- detailed initialization procedure, 12.4.2
- field declarations, 13.5.5
- final variables, 4.12.4
- form of a binary, 13.1, 13.1
- initialization of fields in interfaces, 9.3.1
- initializers for class variables, 8.3.2.1
- verification of the binary representation, 12.3.1
- final methods, 8.4.3.3, 13.4.17
-
- verification of the binary representation, 12.3.1
- final variables, 4.12.4
-
- constant expressions, 15.28, 15.28
- enum body declarations, 8.9.2
- final fields, 8.3.1.2, 8.3.1.2
- final fields and constants, 13.4.9
- form of a binary, 13.1
- inner classes and enclosing instances, 8.1.3, 8.1.3
- local variable declarators and types, 14.4.1
- narrowing reference conversion, 5.1.6
- try-with-resources, 14.20.3
- when initialization occurs, 12.4.1
- finalization of class instances, 12.6
-
- class Object, 4.3.2
- happens-before order, 17.4.5
- kinds of variables, 4.12.3
- unloading of classes and interfaces, 12.7
- floating-point literals, 3.10.2
-
- constant expressions, 15.28
- lexical literals, 15.8.1
- floating-point operations, 4.2.4
-
- additive operators (+ and -) for numeric types, 15.18.2
- division operator /, 15.17.2
- multiplication operator *, 15.17.1
- narrowing primitive conversion, 5.1.3
- widening primitive conversion, 5.1.2
- floating-point types, formats, and values, 4.2.3
-
- cast expressions, 15.16
- field declarations, 8.3
- floating-point literals, 3.10.2
- formal parameters, 8.4.1
- fp-strict expressions, 15.4
- lexical literals, 15.8.1, 15.8.1
- local variable declarators and types, 14.4.1
- narrowing primitive conversion, 5.1.3, 5.1.3
- parenthesized expressions, 15.8.5
- return statement, 14.17
- unary minus operator -, 15.15.4
- floating-point value set parameters, 4.2.3
-
- floating-point types, formats, and values, 4.2.3, 4.2.3, 4.2.3
- for statement, 14.14
-
- array variables, 10.2
- boolean type and boolean values, 4.2.5
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- declarations, 6.1
- initial values of variables, 4.12.5
- kinds of variables, 4.12.3
- local variable declaration statements, 14.4
- for statements, 16.2.12
- forbidden conversions, 5.1.12
- form of a binary, 13.1
-
- check accessibility of type and method, 15.12.4.3
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- final variables, 4.12.4
- loading of classes and interfaces, 12.2
- locate method to invoke, 15.12.4.4
- resolution of symbolic references, 12.3.3
- top level type declarations, 7.6
- when reference types are the same, 4.3.4, 4.3.4
- formal parameters, 8.4.1
-
- annotations, 9.7
- array variables, 10.2
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- declarations, 6.1
- definite assignment and parameters, 16.3
- evaluate arguments, 15.12.4.2
- formal parameters and type parameters, 8.8.1
- initial values of variables, 4.12.5
- invoke test.main, 12.1.4
- kinds of variables, 4.12.3
- method and constructor formal parameters, 13.4.14
- method declarations, 8.4
- reclassification of contextually ambiguous names, 6.5.2
- scope of a declaration, 6.3
- shadowing and obscuring, 6.4
- shared variables, 17.4.1
- syntactic classification of a name according to context, 6.5.1
- variables of reference type, 4.12.2
- formal parameters and type parameters, 8.8.1
-
- declarations, 6.1, 6.1
- definite assignment and parameters, 16.3
- initial values of variables, 4.12.5
- kinds of variables, 4.12.3
- reclassification of contextually ambiguous names, 6.5.2
- scope of a declaration, 6.3
- syntactic classification of a name according to context, 6.5.1
- fp-strict expressions, 15.4
-
- additive operators (+ and -) for numeric types, 15.18.2
- cast expressions, 15.16
- constant expressions, 15.28
- division operator /, 15.17.2
- floating-point types, formats, and values, 4.2.3
- formal parameters, 8.4.1
- multiplication operator *, 15.17.1
- normal annotations, 9.7.1
- return statement, 14.17
- strictfp classes, 8.1.1.3
- strictfp interfaces, 9.1.1.2
- strictfp methods, 8.4.3.5
- value set conversion, 5.1.13, 5.1.13
- widening primitive conversion, 5.1.2
- fully qualified names and canonical names, 6.7
-
- compilation units, 7.3
- form of a binary, 13.1, 13.1
- import declarations, 7.5, 7.5
- local class declarations, 14.3
- named packages, 7.4.1
- notation, 1.3
- package members, 7.1
- single-static-import declarations, 7.5.3
- single-type-import declarations, 7.5.1
- static-import-on-demand declarations, 7.5.4
- top level type declarations, 7.6
- type-import-on-demand declarations, 7.5.2
G
- generic classes and type parameters, 8.1.2
-
- capture conversion, 5.1.10
- class instance creation
expressions, 15.9
- declarations, 6.1
- form of a binary, 13.1
- generic constructors, 8.8.4
- generic methods, 8.4.4
- parameterized types, 4.5
- scope of a declaration, 6.3
- syntactic classification of a name according to context, 6.5.1
- type variables, 4.4
- types, classes, and interfaces, 4.12.6
- generic constructors, 8.8.4
-
- class instance creation
expressions, 15.9
- form of a binary, 13.1
- scope of a declaration, 6.3
- type variables, 4.4
- generic interfaces and type parameters, 9.1.2
-
- capture conversion, 5.1.10
- declarations, 6.1
- form of a binary, 13.1
- parameterized types, 4.5
- scope of a declaration, 6.3
- superinterfaces, 8.1.5
- type variables, 4.4
- types, classes, and interfaces, 4.12.6
- generic methods, 8.4.4
-
- abstract method declarations, 9.4
- compile-time step 2: determine method Signature, 15.12.2
- declarations, 6.1
- form of a binary, 13.1
- method declarations, 8.4
- scope of a declaration, 6.3
- type erasure, 4.6
- type variables, 4.4
- grammar notation, 2.4
- grammars, 2
H
- happens-before order, 17.4.5
-
- executions, 17.4.6
- executions and causality requirements, 17.4.8
- finalization of class instances, 12.6
- hiding (by class methods), 8.4.8.2
-
- inheritance, overriding, and hiding, 8.4.8
- obscuring, 6.4.2
- shadowing, 6.4.1
- host support for packages, 7.2
-
- top level type declarations, 7.6
I
- identifiers, 3.8
-
- declarations, 6.1
- keywords, 3.9
- lexical grammar, 2.2
- identify potentially applicable methods, 15.12.2.1
-
- compile-time step 2: determine method Signature, 15.12.2
- phase 1: identify matching arity methods applicable by subtyping, 15.12.2.2
- phase 2: identify matching arity methods applicable by method invocation conversion, 15.12.2.3
- phase 3: identify applicable variable arity methods, 15.12.2.4
- identity conversion, 5.1.1
-
- assignment conversion, 5.2
- boolean type and boolean values, 4.2.5
- boxing conversion, 5.1.7
- capture conversion, 5.1.10
- casting conversion, 5.5
- method invocation conversion, 5.3
- numeric promotions, 5.6
- unary numeric promotion, 5.6.1
- if statement, 14.9
-
- boolean type and boolean values, 4.2.5
- if statements, 16.2.7
- if-then statement, 14.9.1
-
- if statements, 16.2.7
- if-then-else statement, 14.9.2
-
- if statements, 16.2.7
- implementing finalization, 12.6.1
- import declarations, 7.5
-
- compilation units, 7.3
- incrementation part of for statement, 16.2.12.2
- inferring type arguments based on actual arguments, 15.12.2.7
-
- choosing the most specific method, 15.12.2.5, 15.12.2.5, 15.12.2.5
- compile-time step 2: determine method Signature, 15.12.2
- conditional operator ? :, 15.25
- generic constructors, 8.8.4
- generic methods, 8.4.4
- inferring unresolved type arguments, 15.12.2.8, 15.12.2.8, 15.12.2.8
- intersection types, 4.9
- phase 1: identify matching arity methods applicable by subtyping, 15.12.2.2
- phase 2: identify matching arity methods applicable by method invocation conversion, 15.12.2.3
- phase 3: identify applicable variable arity methods, 15.12.2.4
- try statement, 14.20
- inferring unresolved type arguments, 15.12.2.8
- inheritance and overriding, 9.4.1
-
- abstract method declarations, 9.4
- compile-time checking of Exceptions, 11.2
- interface members, 9.2
- inheritance, overriding, and hiding, 8.4.8
-
- class Object, 4.3.2
- inheriting methods with override-equivalent signatures, 8.4.8.4, 9.4.1.3
-
- variables of reference type, 4.12.2
- initial values of variables, 4.12.5
-
- array initializers, 10.6
- creation of new
class instances, 12.5
- final fields and constants, 13.4.9
- initialization of fields in interfaces, 9.3.1
- initializers for class variables, 8.3.2.1
- kinds of variables, 4.12.3, 4.12.3, 4.12.3
- preparation of a class or interface type, 12.3.2
- run-time evaluation of array creation expressions, 15.10.1
- run-time evaluation of class instance creation expressions, 15.9.4
- variables, 4.12
- initialization of classes and interfaces, 12.4
-
- causes of Exceptions, 11.1.2
- initialize test: execute initializers, 12.1.3
- objects, 4.3.1
- preparation of a class or interface type, 12.3.2
- run-time handling of an exception, 11.3
- static fields, 8.3.1.1
- initialization of fields, 8.3.2
-
- exception checking, 11.2.3
- static initializers, 8.7
- initialization of fields in interfaces, 9.3.1
-
- detailed initialization procedure, 12.4.2
- final fields and constants, 13.4.9
- initializers for class variables, 8.3.2.1
- initialization of for statement, 14.14.1.1
- initialization part of for statement, 16.2.12.1
- initialize test: execute initializers, 12.1.3
- initializers for class variables, 8.3.2.1
-
- definite assignment and static initializers, 16.8
- detailed initialization procedure, 12.4.2
- final fields and constants, 13.4.9
- initialization of fields in interfaces, 9.3.1
- simple expression names, 6.5.6.1
- initializers for instance variables, 8.3.2.2
-
- definite assignment, constructors, and instance initializers, 16.9
- simple expression names, 6.5.6.1
- inner classes and enclosing instances, 8.1.3
-
- anonymous class declarations, 15.9.5
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- compute target reference (if necessary), 15.12.4.1, 15.12.4.1
- determining enclosing instances, 15.9.2, 15.9.2, 15.9.2
- determining the class being instantiated, 15.9.1, 15.9.1
- explicit constructor invocations, 8.8.7.1
- form of a binary, 13.1
- local class declarations, 14.3
- qualified this, 15.8.4
- when initialization occurs, 12.4.1
- input elements and tokens, 3.5
-
- lexical grammar, 2.2, 2.2
- lexical translations, 3.2
- unicode, 3.1
- instance creation
-
- abstract classes, 8.1.1.1
- constructor declarations, 8.8, 8.8, 8.8
- constructor overloading, 8.8.8
- creation of new
class instances, 12.5
- exception analysis of expressions, 11.2.1
- form of a binary, 13.1
- initial values of variables, 4.12.5, 4.12.5
- initialization of fields, 8.3.2
- instance initializers, 8.6, 8.6
- kinds of variables, 4.12.3
- method invocation conversion, 5.3
- names and identifiers, 6.2
- normal and abrupt completion of evaluation, 15.6
- objects, 4.3.1, 4.3.1
- return statement, 14.17
- run-time evaluation of class instance creation expressions, 15.9.4
- run-time handling of an exception, 11.3
- static fields, 8.3.1.1
- String concatenation operator +, 15.18.1
- String conversion, 5.1.11
- syntactic classification of a name according to context, 6.5.1, 6.5.1, 6.5.1
- types, classes, and interfaces, 4.12.6
- when initialization occurs, 12.4.1
- instance initializers, 8.6
-
- class body and member declarations, 8.1.6
- definite assignment, constructors, and instance initializers, 16.9
- return statement, 14.17
- simple expression names, 6.5.6.1
- throw statement, 14.18
- integer bitwise operators &, ^, and |, 15.22.1
-
- binary numeric promotion, 5.6.2
- integer operations, 4.2.2
- shift operators, 15.19, 15.19
- integer literals, 3.10.1
-
- constant expressions, 15.28
- lexical literals, 15.8.1
- integer operations, 4.2.2
- integral types and values, 4.2.1
-
- character literals, 3.10.4
- integer literals, 3.10.1
- lexical literals, 15.8.1, 15.8.1, 15.8.1
- interaction with the memory model, 12.6.2
- interactions of waits, notification, and interruption, 17.2.4
- interface body and member declarations, 9.1.4
-
- scope of a declaration, 6.3
- interface declarations, 9.1
-
- declarations, 6.1
- types, classes, and interfaces, 4.12.6
- interface members, 9.2, 13.5.3
-
- check accessibility of type and method, 15.12.4.3
- declarations, 6.1
- form of a binary, 13.1, 13.1
- interface methods
-
- abstract classes, 8.1.1.1
- annotations, 9.7
- declarations, 6.1, 6.1
- interface body and member declarations, 9.1.4
- raw types, 4.8
- syntactic classification of a name according to context, 6.5.1, 6.5.1, 6.5.1
- interface modifiers, 9.1.1
-
- annotations, 9.7
- static member type declarations, 8.5.1
- top level type declarations, 7.6
- interface type parameters, 13.5.4
- interfaces, 9
-
- array creation expressions, 15.10
- package members, 7.1
- qualified expression names, 6.5.6.2
- reclassification of contextually ambiguous names, 6.5.2
- reference types and values, 4.3
- top level type declarations, 7.6
- interruptions, 17.2.3
- intersection types, 4.9
-
- form of a binary, 13.1, 13.1
- type variables, 4.4
- introduction, 1
- invoke test.main, 12.1.4
- iteration of for statement, 14.14.1.2
J
- Java Virtual Machine startup, 12.1
K
- keywords, 3.9
-
- identifiers, 3.8
- lexical grammar, 2.2
- primitive types and values, 4.2
- kinds and causes of Exceptions, 11.1
- kinds of conversion, 5.1
- kinds of Exceptions, 11.1.1
-
- compile-time checking of Exceptions, 11.2, 11.2
- generic classes and type parameters, 8.1.2
- method throws, 8.4.6, 8.4.6
- narrowing primitive conversion, 5.1.3
- throw statement, 14.18
- widening primitive conversion, 5.1.2
- kinds of types and values, 4.1
-
- capture conversion, 5.1.10
- lexical literals, 15.8.1
- literals, 3.10
- null literal, 3.10.7
- throw statement, 14.18
- kinds of variables, 4.12.3
L
- labeled statements, 14.7, 16.2.5
-
- break statement, 14.15
- continue statement, 14.16
- labeled statements, 14.7, 16.2.5
- names and identifiers, 6.2, 6.2
- lexical grammar, 2.2
- lexical literals, 15.8.1
-
- kinds of types and values, 4.1
- lexical structure, 3
-
- lexical grammar, 2.2
- lexical translations, 3.2
- line terminators, 3.4
-
- character literals, 3.10.4
- input elements and tokens, 3.5
- lexical translations, 3.2
- white space, 3.6
- link test: verify, prepare, (optionally) resolve, 12.1.2
- linking of classes and interfaces, 12.3
-
- causes of Exceptions, 11.1.2
- check accessibility of type and method, 15.12.4.3
- link test: verify, prepare, (optionally) resolve, 12.1.2
- resolution of symbolic references, 12.3.3
- literals, 3.10
-
- lexical grammar, 2.2
- lexical literals, 15.8.1
- load the class test, 12.1.1
- loading of classes and interfaces, 12.2
-
- causes of Exceptions, 11.1.2
- class literals, 15.8.2
- load the class test, 12.1.1
- superclasses and subclasses, 8.1.4
- superinterfaces and subinterfaces, 9.1.3
- loading process, 12.2.1
- local class declaration statements, 16.2.3
- local class declarations, 14.3
-
- class instance creation
expressions, 15.9
- class modifiers, 8.1.1
- determining enclosing instances, 15.9.2, 15.9.2
- explicit constructor invocations, 8.8.7.1
- form of a binary, 13.1
- inner classes and enclosing instances, 8.1.3
- local class declaration statements, 16.2.3
- reclassification of contextually ambiguous names, 6.5.2
- shadowing and obscuring, 6.4
- local variable declaration statements, 14.4, 16.2.4
-
- array initializers, 10.6
- declarations, 6.1
- initial values of variables, 4.12.5
- initialization of fields, 8.3.2
- initialization of for statement, 14.14.1.1
- initialization part of for statement, 16.2.12.1
- kinds of variables, 4.12.3
- local variable declaration statements, 16.2.4
- objects, 4.3.1
- reclassification of contextually ambiguous names, 6.5.2
- scope of a declaration, 6.3
- shadowing and obscuring, 6.4
- shared variables, 17.4.1
- syntactic classification of a name according to context, 6.5.1
- local variable declarators and types, 14.4.1
-
- annotations, 9.7
- array variables, 10.2
- locate method to invoke, 15.12.4.4
-
- overriding (by instance methods), 8.4.8.1
- logical complement operator !, 15.15.6, 16.1.4
-
- boolean type and boolean values, 4.2.5
- constant expressions, 15.28
- logical complement operator !, 16.1.4
M
- marker annotations, 9.7.2
- meaning of expression names, 6.5.6
-
- expression names, 15.14.1
- names and identifiers, 6.2
- meaning of method names, 6.5.7
-
- names and identifiers, 6.2
- meaning of package names, 6.5.3
-
- names and identifiers, 6.2
- meaning of packageortypenames, 6.5.4
- meaning of type names, 6.5.5
-
- names and identifiers, 6.2
- reference types and values, 4.3
- member type declarations, 8.5, 9.5
-
- class body and member declarations, 8.1.6
- class instance creation
expressions, 15.9, 15.9
- class modifiers, 8.1.1, 8.1.1
- declarations, 6.1, 6.1, 6.1, 6.1
- definite assignment and member types, 16.7, 16.7
- determining enclosing instances, 15.9.2, 15.9.2
- determining the class being instantiated, 15.9.1, 15.9.1
- explicit constructor invocations, 8.8.7.1
- form of a binary, 13.1, 13.1
- inner classes and enclosing instances, 8.1.3, 8.1.3
- interface body and member declarations, 9.1.4
- interface modifiers, 9.1.1
- member type declarations, 9.5
- obscuring, 6.4.2, 6.4.2
- qualified type names, 6.5.5.2, 6.5.5.2
- reclassification of contextually ambiguous names, 6.5.2, 6.5.2, 6.5.2, 6.5.2
- reference types and values, 4.3, 4.3
- shadowing, 6.4.1, 6.4.1
- static-import-on-demand declarations, 7.5.4, 7.5.4
- type-import-on-demand declarations, 7.5.2, 7.5.2
- members and constructors of parameterized types, 4.5.2
- memory model, 17.4
-
- interaction with the memory model, 12.6.2
- volatile fields, 8.3.1.4
- method and constructor body, 13.4.22
- method and constructor declarations, 13.4.12
-
- method and constructor formal parameters, 13.4.14
- method result type, 13.4.15
- resolution of symbolic references, 12.3.3
- method and constructor formal parameters, 13.4.14
-
- abstract methods, 13.5.6
- method and constructor overloading, 13.4.23
-
- abstract methods, 13.5.6
- method and constructor throws, 13.4.21
-
- abstract methods, 13.5.6
- method and constructor type parameters, 13.4.13
-
- class type parameters, 13.4.5
- method body, 8.4.7
-
- constructor body, 8.8.7
- method declarations, 8.4
- method declarations, 8.4
-
- class body and member declarations, 8.1.6
- declarations, 6.1
- evaluation, denotation, and result, 15.1
- raw types, 4.8
- return statement, 14.17, 14.17, 14.17
- simple expression names, 6.5.6.1
- syntactic classification of a name according to context, 6.5.1
- method invocation conversion, 5.3
-
- create frame, synchronize, transfer control, 15.12.4.5
- formal parameters, 8.4.1
- inferring type arguments based on actual arguments, 15.12.2.7
- phase 2: identify matching arity methods applicable by method invocation conversion, 15.12.2.3
- method invocation expressions, 15.12
-
- anonymous constructors, 15.9.5.1, 15.9.5.1
- compute target reference (if necessary), 15.12.4.1
- constructor declarations, 8.8
- evaluation, denotation, and result, 15.1
- exception analysis of expressions, 11.2.1
- expressions and run-time checks, 15.5
- formal parameters, 8.4.1
- happens-before order, 17.4.5
- hiding (by class methods), 8.4.8.2
- initial values of variables, 4.12.5
- initialization of fields in interfaces, 9.3.1
- initializers for class variables, 8.3.2.1
- initializers for instance variables, 8.3.2.2
- instance initializers, 8.6
- kinds of variables, 4.12.3
- method invocation conversion, 5.3
- names and identifiers, 6.2
- normal and abrupt completion of evaluation, 15.6, 15.6
- objects, 4.3.1
- overloading, 8.4.9
- overriding (by instance methods), 8.4.8.1
- return statement, 14.17
- run-time handling of an exception, 11.3
- static initializers, 8.7
- syntactic classification of a name according to context, 6.5.1, 6.5.1
- this, 15.8.3
- method modifiers, 8.4.3
-
- abstract classes, 8.1.1.1
- annotations, 9.7
- method declarations, 8.4
- objects, 4.3.1
- method overriding, 13.4.24
- method result and throws types, 15.12.2.6
-
- choosing the constructor and its arguments, 15.9.3
- exception analysis of expressions, 11.2.1, 11.2.1
- exception analysis of statements, 11.2.2
- method result type, 13.4.15
-
- abstract methods, 13.5.6
- method return type, 8.4.5
-
- abstract classes, 8.1.1.1
- class literals, 15.8.2
- constructor declarations, 8.8
- inheriting methods with override-equivalent signatures, 8.4.8.4
- method declarations, 8.4
- requirements in overriding and hiding, 8.4.8.3
- type erasure, 4.6
- method Signature, 8.4.2
-
- abstract classes, 8.1.1.1
- abstract method declarations, 9.4
- abstract methods, 8.4.3.1
- choosing the most specific method, 15.12.2.5
- constructor Signature, 8.8.2
- form of a binary, 13.1
- hiding (by class methods), 8.4.8.2
- inheriting methods with override-equivalent signatures, 8.4.8.4, 9.4.1.3
- interface members, 9.2
- method declarations, 8.4
- overloading, 9.4.2
- overriding (by instance methods), 8.4.8.1, 9.4.1.1
- requirements in overriding and hiding, 8.4.8.3
- type erasure, 4.6
- method throws, 8.4.6
-
- compile-time checking of Exceptions, 11.2
- constructor throws, 8.8.5
- inheriting methods with override-equivalent signatures, 8.4.8.4
- method declarations, 8.4
- syntactic classification of a name according to context, 6.5.1
- throw statement, 14.18
- multiplication operator *, 15.17.1
- multiplicative operators, 15.17
-
- binary numeric promotion, 5.6.2
- constant expressions, 15.28
- floating-point operations, 4.2.4
- integer operations, 4.2.2
N
- name classification
-
- access control, 6.6
- named packages, 7.4.1
-
- annotations, 9.7
- names, 6
- names and identifiers, 6.2
-
- determining the class being instantiated, 15.9.1, 15.9.1
- import declarations, 7.5
- local class declarations, 14.3
- named packages, 7.4.1
- shadowing and obscuring, 6.4
- narrowing primitive conversion, 5.1.3
-
- casting conversion, 5.5
- floating-point operations, 4.2.4
- narrowing primitive conversion, 5.1.3
- postfix decrement operator --, 15.14.3
- postfix increment operator ++, 15.14.2
- prefix decrement operator --, 15.15.2
- prefix increment operator ++, 15.15.1
- widening and narrowing primitive conversion, 5.1.4
- narrowing reference conversion, 5.1.6
-
- casting conversion, 5.5
- native methods, 8.4.3.4, 13.4.18
- new keyword
-
- abstract classes, 8.1.1.1
- constructor declarations, 8.8, 8.8
- constructor overloading, 8.8.8
- creation of new
class instances, 12.5
- exception analysis of expressions, 11.2.1
- form of a binary, 13.1
- initial values of variables, 4.12.5, 4.12.5
- instance initializers, 8.6
- kinds of variables, 4.12.3
- method invocation conversion, 5.3
- names and identifiers, 6.2
- normal and abrupt completion of evaluation, 15.6
- objects, 4.3.1, 4.3.1
- return statement, 14.17
- run-time handling of an exception, 11.3
- String conversion, 5.1.11
- syntactic classification of a name according to context, 6.5.1, 6.5.1, 6.5.1
- types, classes, and interfaces, 4.12.6
- non-atomic treatment of double and long, 17.7
- normal and abrupt completion of evaluation, 15.6
-
- causes of Exceptions, 11.1.2
- normal and abrupt completion of statements, 14.1, 14.1
- run-time handling of an exception, 11.3
- normal and abrupt completion of statements, 14.1
-
- method body, 8.4.7
- normal and abrupt completion of evaluation, 15.6
- run-time handling of an exception, 11.3
- normal annotations, 9.7.1
- notation, 1.3
- notification, 17.2.2
- null literal, 3.10.7
-
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- identifiers, 3.8
- kinds of types and values, 4.1
- lexical literals, 15.8.1
- numeric promotions, 5.6
-
- floating-point operations, 4.2.4
- integer operations, 4.2.2
- numerical comparison operators <,
<=, >, and >=, 15.20.1
-
- binary numeric promotion, 5.6.2
- floating-point operations, 4.2.4
- floating-point types, formats, and values, 4.2.3
- integer operations, 4.2.2
- numerical equality operators == and !=, 15.21.1
-
- binary numeric promotion, 5.6.2
- floating-point operations, 4.2.4
- floating-point types, formats, and values, 4.2.3
- integer operations, 4.2.2
O
- object creation
-
- constructor declarations, 8.8
- initialization of fields, 8.3.2
- instance initializers, 8.6
- run-time evaluation of class instance creation expressions, 15.9.4
- static fields, 8.3.1.1
- String concatenation operator +, 15.18.1
- when initialization occurs, 12.4.1
- objects, 4.3.1
-
- checked casts at run time, 5.5.3, 5.5.3
- String literals, 3.10.5
- obscuring, 6.4.2
-
- labeled statements, 14.7
- shadowing, 6.4.1
- observability of a package, 7.4.3
-
- qualified package names, 6.5.3.2
- scope of a declaration, 6.3
- observable behavior and nonterminating executions, 17.4.9
-
- actions, 17.4.2, 17.4.2
- operators, 3.12
-
- input elements and tokens, 3.5
- lexical grammar, 2.2
- operators ++ and --, 16.1.9
- organization of the specification, 1.1
- other expressions, 16.1.10
- other expressions of type boolean, 16.1.7
- overload resolution
-
- choosing the constructor and its arguments, 15.9.3, 15.9.3
- compile-time step 1: determine class or interface to search, 15.12.1
- compile-time step 2: determine method Signature, 15.12.2, 15.12.2, 15.12.2, 15.12.2, 15.12.2, 15.12.2, 15.12.2, 15.12.2
- enum constants, 8.9.1
- inferring type arguments based on actual arguments, 15.12.2.7, 15.12.2.7, 15.12.2.7
- method and constructor overloading, 13.4.23
- overloading, 8.4.9
- phase 1: identify matching arity methods applicable by subtyping, 15.12.2.2, 15.12.2.2, 15.12.2.2
- phase 2: identify matching arity methods applicable by method invocation conversion, 15.12.2.3, 15.12.2.3, 15.12.2.3
- phase 3: identify applicable variable arity methods, 15.12.2.4, 15.12.2.4
- what binary compatibility is and is not, 13.2
- overloading, 8.4.9, 9.4.2
-
- constructor overloading, 8.8.8
- overriding (by instance methods), 8.4.8.1, 9.4.1.1
-
- abstract classes, 8.1.1.1
- final classes, 8.1.1.2
- inheritance, overriding, and hiding, 8.4.8
- locate method to invoke, 15.12.4.4
P
- package declarations, 7.4
-
- compilation units, 7.3
- declarations, 6.1
- syntactic classification of a name according to context, 6.5.1
- package members, 7.1
- packages, 7
- parameterized types, 4.5
-
- capture conversion, 5.1.10, 5.1.10
- checked casts and unchecked casts, 5.5.2
- class literals, 15.8.2
- determining the class being instantiated, 15.9.1, 15.9.1, 15.9.1, 15.9.1
- field declarations, 13.4.8
- generic classes and type parameters, 8.1.2
- generic interfaces and type parameters, 9.1.2
- method and constructor formal parameters, 13.4.14
- method result type, 13.4.15
- raw types, 4.8
- reference type casting, 5.5.1
- reference types and values, 4.3
- syntactic classification of a name according to context, 6.5.1
- type erasure, 4.6
- types, classes, and interfaces, 4.12.6
- parenthesized expressions, 15.8.5
-
- constant expressions, 15.28
- phase 1: identify matching arity methods applicable by subtyping, 15.12.2.2
-
- compile-time step 2: determine method Signature, 15.12.2, 15.12.2
- inferring type arguments based on actual arguments, 15.12.2.7
- phase 2: identify matching arity methods applicable by method invocation conversion, 15.12.2.3
-
- compile-time step 2: determine method Signature, 15.12.2, 15.12.2
- inferring type arguments based on actual arguments, 15.12.2.7
- phase 1: identify matching arity methods applicable by subtyping, 15.12.2.2
- phase 3: identify applicable variable arity methods, 15.12.2.4
-
- compile-time step 2: determine method Signature, 15.12.2, 15.12.2
- inferring type arguments based on actual arguments, 15.12.2.7
- phase 2: identify matching arity methods applicable by method invocation conversion, 15.12.2.3
- postfix decrement operator --, 15.14.3
-
- floating-point operations, 4.2.4, 4.2.4
- integer operations, 4.2.2, 4.2.2
- normal and abrupt completion of evaluation, 15.6
- operators ++ and --, 16.1.9
- variables, 4.12
- postfix expressions, 15.14
-
- syntactic classification of a name according to context, 6.5.1
- postfix increment operator ++, 15.14.2
-
- floating-point operations, 4.2.4, 4.2.4
- integer operations, 4.2.2, 4.2.2
- normal and abrupt completion of evaluation, 15.6
- operators ++ and --, 16.1.9
- variables, 4.12
- potentially applicable methods
-
- compile-time step 2: determine method Signature, 15.12.2
- phase 1: identify matching arity methods applicable by subtyping, 15.12.2.2
- phase 2: identify matching arity methods applicable by method invocation conversion, 15.12.2.3
- phase 3: identify applicable variable arity methods, 15.12.2.4
- predefined annotation types, 9.6.3
- prefix decrement operator --, 15.15.2
-
- floating-point operations, 4.2.4, 4.2.4
- integer operations, 4.2.2, 4.2.2
- normal and abrupt completion of evaluation, 15.6
- operators ++ and --, 16.1.9
- variables, 4.12
- prefix increment operator ++, 15.15.1
-
- floating-point operations, 4.2.4, 4.2.4
- integer operations, 4.2.2, 4.2.2
- normal and abrupt completion of evaluation, 15.6
- operators ++ and --, 16.1.9
- variables, 4.12
- preparation of a class or interface type, 12.3.2
-
- kinds of variables, 4.12.3
- link test: verify, prepare, (optionally) resolve, 12.1.2
- preventing instantiation of a class, 8.8.10
- primary expressions, 15.8
-
- postfix expressions, 15.14
- primitive types and values, 4.2
-
- class literals, 15.8.2
- evaluation, denotation, and result, 15.1
- kinds of types and values, 4.1
- literals, 3.10
- reifiable types, 4.7
- unboxing conversion, 5.1.8
- variables, 4.12
- program exit, 12.8
- programs and program order, 17.4.3
-
- happens-before order, 17.4.5
- synchronization order, 17.4.4
- public classes, 13.4.3
- public interfaces, 13.5.1
Q
- qualified access to a protected constructor, 6.6.2.2
- qualified expression names, 6.5.6.2
-
- access control, 6.6
- constant expressions, 15.28
- field access expressions, 15.11
- field declarations, 8.3
- qualified method names, 6.5.7.2
- qualified package names, 6.5.3.2
- qualified packageortypenames, 6.5.4.2
- qualified this, 15.8.4
-
- syntactic classification of a name according to context, 6.5.1
- qualified type names, 6.5.5.2
-
- access control, 6.6
R
- raw types, 4.8
-
- assignment conversion, 5.2
- method invocation conversion, 5.3
- reifiable types, 4.7
- unchecked conversion, 5.1.9
- variables of reference type, 4.12.2
- reading final fields during construction, 17.5.2
- reclassification of contextually ambiguous names, 6.5.2
- reference equality operators == and !=, 15.21.3
-
- objects, 4.3.1
- reference type casting, 5.5.1
-
- casting conversion, 5.5
- reference types and values, 4.3
-
- class literals, 15.8.2
- determining the class being instantiated, 15.9.1
- evaluation, denotation, and result, 15.1
- initial values of variables, 4.12.5
- kinds of types and values, 4.1
- variables, 4.12
- references, 1.5
- reifiable types, 4.7
-
- @SafeVarargs, 9.6.3.7
- array creation expressions, 15.10
- array initializers, 10.6
- expressions and run-time checks, 15.5, 15.5
- formal parameters, 8.4.1
- type comparison operator instanceof, 15.20.2
- relational operators, 15.20
-
- constant expressions, 15.28
- relationship to predefined classes and interfaces, 1.4
- remainder operator %, 15.17.3
-
- evaluate operands before operation, 15.7.2
- floating-point operations, 4.2.4
- integer operations, 4.2.2
- normal and abrupt completion of evaluation, 15.6
- requirements in overriding, 9.4.1.2
-
- variables of reference type, 4.12.2
- requirements in overriding and hiding, 8.4.8.3
-
- compile-time checking of Exceptions, 11.2
- method throws, 8.4.6
- requirements in overriding, 9.4.1.2, 9.4.1.2, 9.4.1.2
- variables of reference type, 4.12.2
- resolution of symbolic references, 12.3.3
-
- link test: verify, prepare, (optionally) resolve, 12.1.2
- restrictions on the use of fields during initialization, 8.3.2.3
-
- when initialization occurs, 12.4.1, 12.4.1
- return statement, 14.17
-
- break, continue, return, and throw statements, 16.2.13
- constructor body, 8.8.7
- instance initializers, 8.6
- method body, 8.4.7, 8.4.7
- normal and abrupt completion of statements, 14.1
- static initializers, 8.7
- run-time evaluation of array access, 15.13.1
-
- evaluation order for other expressions, 15.7.5
- run-time evaluation of array creation expressions, 15.10.1
-
- evaluation order for other expressions, 15.7.5
- run-time evaluation of class instance creation expressions, 15.9.4
-
- evaluation order for other expressions, 15.7.5
- throw statement, 14.18
- run-time evaluation of method invocation, 15.12.4
-
- evaluation order for other expressions, 15.7.5
- overloading, 8.4.9
- run-time handling of an exception, 11.3
-
- expressions and run-time checks, 15.5
- initial values of variables, 4.12.5
- kinds of variables, 4.12.3
- throw statement, 14.18
- try statement, 14.20
S
- scope of a declaration, 6.3
-
- basic for statement, 14.14.1
- class body and member declarations, 8.1.6
- class declarations, 8.1
- class literals, 15.8.2
- compile-time step 1: determine class or interface to search, 15.12.1
- enhanced for statement, 14.14.2, 14.14.2
- enum constants, 8.9.1
- field declarations, 8.3
- formal parameters, 8.4.1
- generic classes and type parameters, 8.1.2
- generic constructors, 8.8.4
- generic interfaces and type parameters, 9.1.2
- generic methods, 8.4.4
- import declarations, 7.5
- interface body and member declarations, 9.1.4
- interface declarations, 9.1
- local class declarations, 14.3
- local variable declarators and types, 14.4.1
- member type declarations, 8.5
- method declarations, 8.4
- named packages, 7.4.1
- reclassification of contextually ambiguous names, 6.5.2, 6.5.2
- simple package names, 6.5.3.1
- top level type declarations, 7.6
- try statement, 14.20
- try-with-resources, 14.20.3
- type variables, 4.4
- semantics of final fields, 17.5.1
- separators, 3.11
-
- lexical grammar, 2.2
- shadowing, 6.4.1
-
- compile-time step 1: determine class or interface to search, 15.12.1
- identify potentially applicable methods, 15.12.2.1
- obscuring, 6.4.2
- scope of a declaration, 6.3
- simple expression names, 6.5.6.1
- simple method names, 6.5.7.1
- shadowing and obscuring, 6.4
-
- basic for statement, 14.14.1
- class body and member declarations, 8.1.6
- class declarations, 8.1
- enhanced for statement, 14.14.2
- enum constants, 8.9.1
- field declarations, 8.3
- formal parameters, 8.4.1
- generic classes and type parameters, 8.1.2
- generic constructors, 8.8.4
- import declarations, 7.5
- interface declarations, 9.1
- local class declarations, 14.3
- local variable declarators and types, 14.4.1
- member type declarations, 8.5
- method declarations, 8.4
- named packages, 7.4.1
- top level type declarations, 7.6
- try statement, 14.20
- try-with-resources, 14.20.3
- shared variables, 17.4.1
-
- happens-before order, 17.4.5
- shift operators, 15.19
-
- constant expressions, 15.28
- integer operations, 4.2.2
- unary numeric promotion, 5.6.1
- simple assignment operator =, 15.26.1
-
- assignment conversion, 5.2
- expressions and run-time checks, 15.5, 15.5
- normal and abrupt completion of evaluation, 15.6, 15.6
- simple expression names, 6.5.6.1
-
- constant expressions, 15.28
- field access expressions, 15.11
- simple method names, 6.5.7.1
- simple package names, 6.5.3.1
- simple packageortypenames, 6.5.4.1
- simple type names, 6.5.5.1
- single-element annotations, 9.7.3
-
- annotation type elements, 9.6.1
- single-static-import declarations, 7.5.3
-
- compile-time step 1: determine class or interface to search, 15.12.1
- identify potentially applicable methods, 15.12.2.1
- import declarations, 7.5
- reclassification of contextually ambiguous names, 6.5.2, 6.5.2
- scope of a declaration, 6.3
- simple method names, 6.5.7.1
- single-type-import declarations, 7.5.1
- syntactic classification of a name according to context, 6.5.1
- single-type-import declarations, 7.5.1
-
- declarations, 6.1
- import declarations, 7.5
- reclassification of contextually ambiguous names, 6.5.2
- scope of a declaration, 6.3
- single-static-import declarations, 7.5.3
- syntactic classification of a name according to context, 6.5.1
- top level type declarations, 7.6
- sleep and yield, 17.3
- statements, 14.5
- static fields, 8.3.1.1, 13.4.10
-
- generic classes and type parameters, 8.1.2
- kinds of variables, 4.12.3, 4.12.3
- when initialization occurs, 12.4.1
- static initializers, 8.7, 13.4.25
-
- class body and member declarations, 8.1.6
- definite assignment and static initializers, 16.8
- exception checking, 11.2.3
- final fields, 8.3.1.2
- generic classes and type parameters, 8.1.2
- inner classes and enclosing instances, 8.1.3
- return statement, 14.17
- simple expression names, 6.5.6.1
- static initializers, 13.4.25
- throw statement, 14.18
- static member type declarations, 8.5.1
-
- anonymous class declarations, 15.9.5
- class modifiers, 8.1.1
- generic classes and type parameters, 8.1.2
- interface modifiers, 9.1.1, 9.1.1
- qualified type names, 6.5.5.2
- static methods, 8.4.3.2, 13.4.19
-
- generic classes and type parameters, 8.1.2
- simple expression names, 6.5.6.1
- static-import-on-demand declarations, 7.5.4
-
- compile-time step 1: determine class or interface to search, 15.12.1
- identify potentially applicable methods, 15.12.2.1
- import declarations, 7.5
- reclassification of contextually ambiguous names, 6.5.2, 6.5.2
- scope of a declaration, 6.3
- simple method names, 6.5.7.1
- syntactic classification of a name according to context, 6.5.1
- type-import-on-demand declarations, 7.5.2
- strictfp classes, 8.1.1.3
-
- fp-strict expressions, 15.4
- strictfp interfaces, 9.1.1.2
-
- fp-strict expressions, 15.4
- strictfp methods, 8.4.3.5
-
- fp-strict expressions, 15.4
- String concatenation operator +, 15.18.1
-
- boolean type and boolean values, 4.2.5
- class String, 4.3.3
- constructor declarations, 8.8
- creation of new
class instances, 12.5
- floating-point operations, 4.2.4
- integer operations, 4.2.2
- normal and abrupt completion of evaluation, 15.6
- objects, 4.3.1, 4.3.1
- String conversion, 5.4
- types, classes, and interfaces, 4.12.6
- String conversion, 5.1.11, 5.4
-
- boolean type and boolean values, 4.2.5
- String concatenation operator +, 15.18.1
- String conversion, 5.4
- String literals, 3.10.5
-
- class String, 4.3.3
- comments, 3.7
- constant expressions, 15.28
- creation of new
class instances, 12.5
- escape sequences for character and String literals, 3.10.6
- lexical literals, 15.8.1
- reference equality operators == and !=, 15.21.3
- unicode, 3.1
- strings
-
- lexical literals, 15.8.1
- literals, 3.10
- objects, 4.3.1
- String literals, 3.10.5, 3.10.5
- subsequent modification of final fields, 17.5.3
- subtyping, 4.10
-
- checked casts and unchecked casts, 5.5.2
- method throws, 8.4.6
- narrowing reference conversion, 5.1.6
- parameterized types, 4.5
- phase 1: identify matching arity methods applicable by subtyping, 15.12.2.2
- type arguments and wildcards, 4.5.1
- widening reference conversion, 5.1.5
- subtyping among array types, 4.10.3
-
- array types, 10.1
- subtyping among class and interface types, 4.10.2
-
- try statement, 14.20
- subtyping among primitive types, 4.10.1
- superclasses and subclasses, 8.1.4
-
- class members, 8.2
- class Object, 4.3.2
- enums, 8.9
- final classes, 8.1.1.2
- kinds of variables, 4.12.3
- loading process, 12.2.1
- syntactic classification of a name according to context, 6.5.1
- superclasses and superinterfaces, 13.4.4
-
- loading process, 12.2.1
- superinterfaces, 13.5.2
- verification of the binary representation, 12.3.1
- superinterfaces, 8.1.5, 13.5.2
-
- abstract classes, 8.1.1.1
- checked casts at run time, 5.5.3
- class members, 8.2
- superinterfaces and subinterfaces, 9.1.3
- syntactic classification of a name according to context, 6.5.1
- types, classes, and interfaces, 4.12.6
- superinterfaces and subinterfaces, 9.1.3
-
- loading process, 12.2.1
- superclasses and subclasses, 8.1.4
- superinterfaces, 8.1.5
- syntactic classification of a name according to context, 6.5.1
- switch statement, 14.11
-
- scope of a declaration, 6.3
- switch statements, 16.2.9
- switch statements, 16.2.9
- synchronization, 17.1
-
- objects, 4.3.1
- synchronized methods, 8.4.3.6
- synchronized statement, 14.19
- volatile fields, 8.3.1.4
- synchronization order, 17.4.4
-
- actions, 17.4.2
- interaction with the memory model, 12.6.2
- synchronized methods, 8.4.3.6, 13.4.20
-
- class Object, 4.3.2
- synchronization, 17.1
- synchronized statement, 14.19
- synchronized statement, 14.19
-
- create frame, synchronize, transfer control, 15.12.4.5
- objects, 4.3.1
- synchronization, 17.1
- synchronized statements, 16.2.14
- synchronized statements, 16.2.14
- syntactic classification of a name according to context, 6.5.1
-
- access control, 6.6
- syntactic grammar, 2.3
-
- compilation units, 7.3
- input elements and tokens, 3.5
- lexical translations, 3.2
- syntax, 18
T
- this, 15.8.3
-
- initialization of fields in interfaces, 9.3.1
- initializers for class variables, 8.3.2.1
- initializers for instance variables, 8.3.2.2
- instance initializers, 8.6
- static initializers, 8.7
- static methods, 8.4.3.2
- threads and locks, 17
-
- objects, 4.3.1
- throw statement, 14.18
- throw statement, 14.18
-
- break, continue, return, and throw statements, 16.2.13
- causes of Exceptions, 11.1.2
- exception analysis of statements, 11.2.2
- initial values of variables, 4.12.5
- kinds of variables, 4.12.3
- normal and abrupt completion of statements, 14.1, 14.1
- run-time handling of an exception, 11.3
- top level type declarations, 7.6
-
- class instance creation
expressions, 15.9
- class modifiers, 8.1.1
- compilation units, 7.3
- determining accessibility, 6.6.1
- form of a binary, 13.1
- host support for packages, 7.2
- interface modifiers, 9.1.1
- package members, 7.1, 7.1
- scope of a declaration, 6.3, 6.3, 6.3
- shadowing, 6.4.1
- single-static-import declarations, 7.5.3
- single-type-import declarations, 7.5.1
- when initialization occurs, 12.4.1
- transient fields, 8.3.1.3, 13.4.11
- try statement, 14.20
-
- array variables, 10.2
- compile-time checking of Exceptions, 11.2, 11.2
- declarations, 6.1
- definite assignment and parameters, 16.3
- exception analysis of statements, 11.2.2
- expressions and run-time checks, 15.5, 15.5
- final variables, 4.12.4, 4.12.4
- initial values of variables, 4.12.5
- kinds of variables, 4.12.3
- labeled statements, 14.7
- reclassification of contextually ambiguous names, 6.5.2
- run-time handling of an exception, 11.3
- scope of a declaration, 6.3
- shadowing and obscuring, 6.4
- shared variables, 17.4.1
- syntactic classification of a name according to context, 6.5.1
- throw statement, 14.18, 14.18, 14.18
- try statements, 16.2.15
- try statements, 16.2.15
- try-catch statement
-
- try statement, 14.20
- try-catch-finally statement
-
- try statement, 14.20
- try-finally statement
-
- try statement, 14.20
- try-with-resources, 14.20.3
-
- final variables, 4.12.4
- scope of a declaration, 6.3
- shadowing and obscuring, 6.4
- try statement, 14.20
- try-with-resources (basic)
-
- extended try-with-resources, 14.20.3.2
- type arguments and wildcards, 4.5.1
-
- capture conversion, 5.1.10
- checked casts and unchecked casts, 5.5.2
- class instance creation
expressions, 15.9, 15.9
- reference types and values, 4.3
- reifiable types, 4.7
- subtyping among class and interface types, 4.10.2
- syntactic classification of a name according to context, 6.5.1, 6.5.1, 6.5.1
- types, classes, and interfaces, 4.12.6
- unchecked conversion, 5.1.9
- type comparison operator instanceof, 15.20.2
-
- expressions and run-time checks, 15.5
- objects, 4.3.1
- syntactic classification of a name according to context, 6.5.1
- type erasure, 4.6
-
- assignment conversion, 5.2
- checked casts and unchecked casts, 5.5.2
- checked casts at run time, 5.5.3
- choosing the most specific method, 15.12.2.5
- class type parameters, 13.4.5
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- constructor Signature, 8.8.2
- create frame, synchronize, transfer control, 15.12.4.5
- evaluate arguments, 15.12.4.2
- field declarations, 13.4.8
- form of a binary, 13.1, 13.1, 13.1, 13.1
- inferring type arguments based on actual arguments, 15.12.2.7
- method and constructor formal parameters, 13.4.14
- method and constructor type parameters, 13.4.13
- method invocation conversion, 5.3
- method result and throws types, 15.12.2.6, 15.12.2.6
- method result type, 13.4.15
- method Signature, 8.4.2
- phase 3: identify applicable variable arity methods, 15.12.2.4
- raw types, 4.8
- requirements in overriding and hiding, 8.4.8.3
- type variables, 4.4
- type of a constructor, 8.8.6
-
- members and constructors of parameterized types, 4.5.2
- type of an expression, 15.3
- type variables, 4.4
-
- class literals, 15.8.2
- declarations, 6.1
- field declarations, 13.4.8
- generic classes and type parameters, 8.1.2
- generic constructors, 8.8.4
- generic interfaces and type parameters, 9.1.2
- generic methods, 8.4.4
- method and constructor formal parameters, 13.4.14
- method result type, 13.4.15
- reference types and values, 4.3
- type erasure, 4.6
- types, classes, and interfaces, 4.12.6
- type-import-on-demand declarations, 7.5.2
-
- declarations, 6.1
- import declarations, 7.5
- reclassification of contextually ambiguous names, 6.5.2
- scope of a declaration, 6.3
- shadowing, 6.4.1
- static-import-on-demand declarations, 7.5.4
- syntactic classification of a name according to context, 6.5.1
- types
-
- capture conversion, 5.1.10
- lexical literals, 15.8.1
- literals, 3.10
- null literal, 3.10.7
- throw statement, 14.18
- types, classes, and interfaces, 4.12.6
- types, values, and variables, 4
U
- unary minus operator -, 15.15.4
-
- constant expressions, 15.28
- floating-point operations, 4.2.4
- integer literals, 3.10.1, 3.10.1
- integer operations, 4.2.2
- unary numeric promotion, 5.6.1
- unary numeric promotion, 5.6.1
-
- array access, 10.4
- array access expressions, 15.13
- array creation expressions, 15.10
- bitwise complement operator ~, 15.15.5
- numeric promotions, 5.6
- shift operators, 15.19
- unary minus operator -, 15.15.4
- unary plus operator +, 15.15.3
- unary operators, 15.15
- unary plus operator +, 15.15.3
-
- constant expressions, 15.28
- floating-point operations, 4.2.4
- integer operations, 4.2.2
- unary numeric promotion, 5.6.1
- unboxing conversion, 5.1.8
-
- additive operators, 15.18, 15.18
- array creation expressions, 15.10
- assert statement, 14.10
- assignment conversion, 5.2
- binary numeric promotion, 5.6.2
- bitwise complement operator ~, 15.15.5
- boolean equality operators == and !=, 15.21.2
- boolean logical operators &, ^, and |, 15.22.2
- casting conversion, 5.5, 5.5, 5.5
- conditional operator ? :, 15.25, 15.25
- conditional-and operator &&, 15.23, 15.23
- conditional-or operator ||, 15.24, 15.24
- do statement, 14.13
- equality operators, 15.21
- floating-point operations, 4.2.4
- if-then statement, 14.9.1
- if-then-else statement, 14.9.2
- integer bitwise operators &, ^, and |, 15.22.1
- integer operations, 4.2.2
- iteration of for statement, 14.14.1.2
- logical complement operator !, 15.15.6
- method invocation conversion, 5.3
- multiplicative operators, 15.17
- numeric promotions, 5.6
- numerical comparison operators <,
<=, >, and >=, 15.20.1
- numerical equality operators == and !=, 15.21.1
- postfix decrement operator --, 15.14.3
- postfix increment operator ++, 15.14.2
- prefix decrement operator --, 15.15.2
- prefix increment operator ++, 15.15.1
- switch statement, 14.11
- unary minus operator -, 15.15.4
- unary numeric promotion, 5.6.1, 5.6.1
- unary plus operator +, 15.15.3
- while statement, 14.12
- unchecked conversion, 5.1.9
-
- @SafeVarargs, 9.6.3.7
- assignment conversion, 5.2
- casting conversion, 5.5, 5.5
- members and constructors of parameterized types, 4.5.2
- method invocation conversion, 5.3
- method return type, 8.4.5
- phase 1: identify matching arity methods applicable by subtyping, 15.12.2.2
- variables of reference type, 4.12.2
- unicode, 3.1
-
- character literals, 3.10.4
- lexical grammar, 2.2
- primitive types and values, 4.2
- unicode escapes, 3.3
- unicode escapes, 3.3
-
- escape sequences for character and String literals, 3.10.6
- input elements and tokens, 3.5
- lexical translations, 3.2
- unicode, 3.1
- unloading of classes and interfaces, 12.7
-
- kinds of variables, 4.12.3
- unnamed packages, 7.4.2
-
- compilation units, 7.3
- unreachable statements, 14.21
-
- final fields and constants, 13.4.9
- instance initializers, 8.6
- static initializers, 8.7
V
- value set conversion, 5.1.13
-
- assignment conversion, 5.2
- binary numeric promotion, 5.6.2
- casting conversion, 5.5
- compound assignment operators, 15.26.2, 15.26.2
- create frame, synchronize, transfer control, 15.12.4.5
- evaluation, denotation, and result, 15.1
- floating-point types, formats, and values, 4.2.3
- fp-strict expressions, 15.4
- method invocation conversion, 5.3
- simple assignment operator =, 15.26.1, 15.26.1
- unary minus operator -, 15.15.4
- unary numeric promotion, 5.6.1
- variables as values, 15.2
- variables, 4.12
-
- evaluation, denotation, and result, 15.1
- variables as values, 15.2
- variables of primitive type, 4.12.1
- variables of reference type, 4.12.2
-
- @SafeVarargs, 9.6.3.7
- type of an expression, 15.3
- variables, 4.12
- verification of the binary representation, 12.3.1
-
- link test: verify, prepare, (optionally) resolve, 12.1.2
- volatile fields, 8.3.1.4
-
- happens-before order, 17.4.5
- synchronization order, 17.4.4
W
- wait, 17.2.1
-
- happens-before order, 17.4.5
- wait sets and notification, 17.2
-
- class Object, 4.3.2
- well-formed executions, 17.4.7
-
- executions, 17.4.6
- what binary compatibility is and is not, 13.2
- when initialization occurs, 12.4.1
-
- final variables, 4.12.4
- initialize test: execute initializers, 12.1.3
- when reference types are the same, 4.3.4
-
- checked casts at run time, 5.5.3
- where types are used, 4.11
- while statement, 14.12
-
- boolean type and boolean values, 4.2.5
- while statements, 16.2.10
- while statements, 16.2.10
- white space, 3.6
-
- input elements and tokens, 3.5, 3.5
- lexical grammar, 2.2
- lexical translations, 3.2
- widening and narrowing primitive conversion, 5.1.4
-
- casting conversion, 5.5
- widening primitive conversion, 5.1.2
-
- assignment conversion, 5.2
- binary numeric promotion, 5.6.2
- casting conversion, 5.5, 5.5
- method invocation conversion, 5.3
- numeric promotions, 5.6
- unary numeric promotion, 5.6.1, 5.6.1
- widening and narrowing primitive conversion, 5.1.4
- widening reference conversion, 5.1.5
-
- assignment conversion, 5.2
- casting conversion, 5.5, 5.5
- floating-point operations, 4.2.4
- integer operations, 4.2.2
- method invocation conversion, 5.3
- word tearing, 17.6
- write-protected fields, 17.5.4