Symbols
- = operator, 15.26.1
-
- assignment contexts, 5.2
- expressions and run-time checks, 15.5, 15.5
- normal and abrupt completion of evaluation, 15.6, 15.6
- @Deprecated, 9.6.4.6
-
- @SuppressWarnings, 9.6.4.5, 9.6.4.5
- @FunctionalInterface, 9.6.4.9
- @Inherited, 9.6.4.3
- @Override, 9.6.4.4
-
- anonymous class declarations, 15.9.5
- @Repeatable, 9.6.4.8
-
- repeatable annotation types, 9.6.3
- @Retention, 9.6.4.2
-
- repeatable annotation types, 9.6.3
- @SafeVarargs, 9.6.4.7
-
- formal parameters, 8.4.1
- @SuppressWarnings, 9.6.4.5
-
- checked and unchecked narrowing reference conversions, 5.1.6.2
- formal parameters, 8.4.1
- requirements in overriding and hiding, 8.4.8.3, 8.4.8.3
- type of a method reference, 15.13.2
- unchecked conversion, 5.1.9
- @Target, 9.6.4.1
-
- multiple annotations of the same type, 9.7.5
- repeatable annotation types, 9.6.3
- where annotations may appear, 9.7.4
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.1
- final classes, 8.1.1.2
- superinterfaces, 8.1.5
- abstract interfaces, 9.1.1.1
- abstract methods, 8.4.3.1, 13.4.16
-
- abstract classes, 8.1.1.1
- method body, 8.4.7
- method declarations, 9.4
- access control, 6.6
-
- accessing superclass members using super, 15.11.2
- choosing the constructor and its arguments, 15.9.3
- class literals, 15.8.2
- class modifiers, 8.1.1, 8.1.1
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- constructor declarations, 8.8
- constructor modifiers, 8.8.3
- default constructor, 8.8.9
- dependences, 7.7.1
- determining the class being instantiated, 15.9.1
- enum body declarations, 8.9.2
- enum types, 8.9
- explicit constructor invocations, 8.8.7.1
- exported and opened packages, 7.7.2
- field access using a primary, 15.11.1
- field declarations, 8.3
- field modifiers, 8.3.1
- hiding (by class methods), 8.4.8.2
- identify potentially applicable methods, 15.12.2.1
- interface modifiers, 9.1.1, 9.1.1
- local class declarations, 14.3
- member type declarations, 8.5, 8.5
- method declarations, 9.4, 9.4
- method modifiers, 8.4.3
- method reference expressions, 15.13
- Module declarations, 7.7
- 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
- service consumption, 7.7.3
- service provision, 7.7.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
- type of a lambda expression, 15.27.3
- type of a method reference, 15.13.2
- type-import-on-demand declarations, 7.5.2
- access to a protected constructor, 6.6.2.2
- access to a protected member, 6.6.2.1
- access to members and constructors, 13.4.7
-
- interface method declarations, 13.5.6
- accessing superclass members using super, 15.11.2
-
- declarations, 6.1
- field declarations, 8.3
- field initialization, 8.3.2, 8.3.2
- initialization of fields in interfaces, 9.3.1
- 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
- additional argument constraints, 18.5.2.2
- 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
- allowed narrowing reference conversion, 5.1.6.1
-
- narrowing reference conversion, 5.1.6
- an array of characters is not a String, 10.9
- annotation type elements, 9.6.1
-
- @Target, 9.6.4.1
- annotation types, 9.6
- declarations, 6.1, 6.1, 6.1
- marker annotations, 9.7.2
- normal annotations, 9.7.1
- single-element annotations, 9.7.3
- syntactic classification of a name according to context, 6.5.1
- where types are used, 4.11
- annotation types, 9.6
-
- @Target, 9.6.4.1
- annotations, 9.7
- declarations, 6.1
- interface declarations, 9.1
- annotations, 9.7
-
- declarations, 6.1
- defaults for annotation type elements, 9.6.2
- syntactic classification of a name according to context, 6.5.1
- anonymous class declarations, 15.9.5
-
- choosing the constructor and its arguments, 15.9.3
- 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
- where types are used, 4.11, 4.11
- anonymous constructors, 15.9.5.1
-
- choosing the constructor and its arguments, 15.9.3
- default constructor, 8.8.9
- form of a binary, 13.1
- argument lists are evaluated left-to-right, 15.7.4
- array access, 10.4
- array access expressions, 15.10.3
-
- array access, 10.4
- assignment operators, 15.26
- compound assignment operators, 15.26.2
- 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 and access expressions, 15.10
-
- method reference expressions, 15.13
- array creation expressions, 15.10.1
-
- array creation, 10.3
- array initializers, 10.6
- objects, 4.3.1
- syntactic classification of a name according to context, 6.5.1
- unary numeric promotion, 5.6.1
- where types are used, 4.11, 4.11
- array initializers, 10.6
-
- array creation, 10.3
- definite assignment and array initializers, 16.4
- normal and abrupt completion of evaluation, 15.6
- objects, 4.3.1
- run-time evaluation of array creation expressions, 15.10.2
- array members, 10.7
-
- declarations, 6.1, 6.1
- happens-before order, 17.4.5
- qualified expression names, 6.5.6.2
- array store exception, 10.5
-
- array variables, 10.2
- assignment contexts, 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
-
- annotation type elements, 9.6.1
- enhanced for statement, 14.14.2
- raw types, 4.8
- reference types and values, 4.3
- reifiable types, 4.7
- where types are used, 4.11
- array variables, 10.2
-
- enhanced for statement, 14.14.2
- field (constant) declarations, 9.3
- field declarations, 8.3
- formal parameters, 8.4.1, 8.4.1, 8.4.1
- lambda parameters, 15.27.1, 15.27.1, 15.27.1
- local variable declarators and types, 14.4.1
- method result, 8.4.5
- arrays, 10
-
- array creation expressions, 15.10.1
- kinds of variables, 4.12.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
- assert statements, 16.2.8
- assignment contexts, 5.2
-
- array initializers, 10.6
- array store exception, 10.5
- array variables, 10.2
- class instance creation
expressions, 15.9
- execution of try-catch, 14.20.1
- kinds of types and values, 4.1
- lambda expressions, 15.27
- method invocation expressions, 15.12
- method reference expressions, 15.13
- normal annotations, 9.7.1
- reference conditional expressions, 15.25.3
- return statement, 14.17
- run-time evaluation of method references, 15.13.3
- 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 contexts, 5.2
- assignment expressions, 16.1.8
- evaluation order for other expressions, 15.7.5
- field initialization, 8.3.2
- final variables, 4.12.4
- forms of expressions, 15.2
- initial values of variables, 4.12.5
- restrictions on field references in initializers, 8.3.3, 8.3.3
- syntactic classification of a name according to context, 6.5.1
- variables, 4.12
- asynchronous Exceptions, 11.1.3
-
- causes of Exceptions, 11.1.2
B
- basic for statement, 14.14.1
-
- @Target, 9.6.4.1
- for statements, 16.2.12
- scope of a declaration, 6.3
- syntactic classification of a name according to context, 6.5.1
- where types are used, 4.11
- basic try-with-resources, 14.20.3.1
- binary compatibility, 13
- binary numeric promotion, 5.6.2
-
- additive operators (+ and -) for numeric types, 15.18.2
- division operator /, 15.17.2
- integer bitwise operators &, ^, and |, 15.22.1
- multiplicative operators, 15.17
- numeric conditional expressions, 15.25.2
- numeric contexts, 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
- lambda body, 15.27.2
- local class declarations, 14.3
- scope of a declaration, 6.3
- blocks and statements, 14
- boolean conditional expressions, 15.25.1
- boolean constant expressions, 16.1.1
-
- final variables, 4.12.4
- 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
- bounds, 18.1.3
-
- bounds involving capture conversion, 18.3.2
- functional interface parameterization inference, 18.5.3
- invocation applicability inference, 18.5.1
- more specific method inference, 18.5.4
- reduction, 18.2
- bounds involving capture conversion, 18.3.2
-
- incorporation, 18.3
- boxing conversion, 5.1.7
-
- assignment contexts, 5.2
- casting contexts, 5.5
- class literals, 15.8.2
- conditional operator ? :, 15.25
- creation of new class instances, 12.5
- floating-point operations, 4.2.4
- integer operations, 4.2.2
- invocation contexts, 5.3
- normal and abrupt completion of evaluation, 15.6
- numeric conditional expressions, 15.25.2
- poly method invocation compatibility, 18.5.2.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
- type compatibility constraints, 18.2.2, 18.2.2
- break statement, 14.15
-
- break, continue, return, and throw statements, 16.2.13
- labeled statements, 14.7
- names and identifiers, 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.10.3
- assignment operators, 15.26
- bounds, 18.1.3
- cast expressions, 15.16
- compile-time declaration of a method reference, 15.13.1, 15.13.1
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- enhanced for statement, 14.14.2
- expression compatibility constraints, 18.2.1, 18.2.1
- field access using a primary, 15.11.1
- function types, 9.9
- intersection types, 4.9
- least upper bound, 4.10.4
- members and constructors of parameterized types, 4.5.2
- 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
- reference conditional expressions, 15.25.3
- resolution, 18.4
- simple expression names, 6.5.6.1
- subtyping among class and interface types, 4.10.2
- type arguments of parameterized types, 4.5.1
- type of a method reference, 15.13.2
- cast expressions, 15.16
-
- array types, 10.1
- casting contexts, 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
- forms of expressions, 15.2
- happens-before order, 17.4.5
- integer operations, 4.2.2
- intersection types, 4.9
- 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
- where types are used, 4.11
- casting contexts, 5.5
-
- boolean type and boolean values, 4.2.5
- cast expressions, 15.16, 15.16
- expressions and run-time checks, 15.5
- happens-before order, 17.4.5
- kinds of types and values, 4.1
- lambda expressions, 15.27
- method reference expressions, 15.13
- objects, 4.3.1
- reference equality operators == and !=, 15.21.3
- casting to primitive types, 5.5
- casting 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
-
- run-time evaluation of method references, 15.13.3, 15.13.3, 15.13.3
- checked and unchecked narrowing reference conversions, 5.1.6.2
-
- casting contexts, 5.5
- narrowing reference conversion, 5.1.6
- checked exception constraints, 18.2.5
- choosing the constructor and its arguments, 15.9.3
-
- anonymous class declarations, 15.9.5
- anonymous constructors, 15.9.5.1, 15.9.5.1, 15.9.5.1, 15.9.5.1
- class instance creation
expressions, 15.9
- compile-time declaration of a method reference, 15.13.1
- default constructor, 8.8.9
- determining the class being instantiated, 15.9.1, 15.9.1, 15.9.1, 15.9.1, 15.9.1
- expression compatibility constraints, 18.2.1
- formal parameters, 8.8.1
- choosing the most specific method, 15.12.2.5
-
- compile-time declaration of a method reference, 15.13.1, 15.13.1, 15.13.1
- compile-time step 2: determine
method Signature, 15.12.2
- conditional operator ? :, 15.25, 15.25
- method and constructor overloading, 13.4.23
- more specific method inference, 18.5.4, 18.5.4
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2
- phase 2: identify matching arity
methods applicable by loose invocation, 15.12.2.3
- phase 3: identify methods
applicable by variable arity invocation, 15.12.2.4
- class body and member declarations, 8.1.6, 13.4.6
-
- class members, 8.2
- member type declarations, 8.5, 8.5
- scope of a declaration, 6.3
- what binary compatibility is and is not, 13.2
- class declarations, 8.1
-
- declarations, 6.1
- reference types and values, 4.3
- types, classes, and interfaces, 4.12.6
- class instance creation
expressions, 15.9
-
- conditional operator ? :, 15.25, 15.25
- 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
- forms of expressions, 15.2
- functional interfaces, 9.8
- initial values of variables, 4.12.5, 4.12.5
- instance initializers, 8.6
- invocation contexts, 5.3
- kinds of variables, 4.12.3
- method reference expressions, 15.13
- names and identifiers, 6.2
- objects, 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
- where types are used, 4.11, 4.11, 4.11, 4.11
- class literals, 15.8.2
-
- declarations, 6.1
- normal annotations, 9.7.1
- syntactic classification of a name according to context, 6.5.1
- class loading, 12.2
-
- causes of Exceptions, 11.1.2
- class literals, 15.8.2
- load the class test, 12.1.1
- class members, 8.2
-
- abstract classes, 8.1.1.1
- declarations, 6.1
- function types, 9.9
- members and constructors of parameterized types, 4.5.2
- method invocation type, 15.12.2.6
- class modifiers, 8.1.1
-
- @Target, 9.6.4.1
- allowed narrowing reference conversion, 5.1.6.1
- anonymous class declarations, 15.9.5
- local class declarations, 14.3
- class Object, 4.3.2
-
- @Override, 9.6.4.4
- functional interfaces, 9.8
- interface members, 9.2
- method invocation type, 15.12.2.6
- narrowing reference conversions at run time, 5.1.6.3, 5.1.6.3
- class objects for arrays, 10.8
-
- allowed narrowing reference conversion, 5.1.6.1
- types, classes, and interfaces, 4.12.6
- class String, 4.3.3
-
- lexical literals, 15.8.1
- literals, 3.10
- String literals, 3.10.5, 3.10.5
- class type parameters, 13.4.5
- classes, 8
-
- local class declarations, 14.3
- package members, 7.1
- qualified expression names, 6.5.6.2
- reclassification of contextually ambiguous names, 6.5.2
- top level type declarations, 7.6
- comments, 3.7
-
- input elements and tokens, 3.5
- lexical grammar, 2.2
- lexical translations, 3.2
- line terminators, 3.4
- Unicode, 3.1
- compilation units, 7.3
-
- dependences, 7.7.1
- determining accessibility, 6.6.1
- exported and opened packages, 7.7.2
- host support for modules and packages, 7.2
- observability of a Module, 7.7.6
- package members, 7.1
- package observability and visibility, 7.4.3
- reclassification of contextually ambiguous names, 6.5.2, 6.5.2
- shadowing, 6.4.1
- syntactic grammar, 2.3
- unnamed modules, 7.7.5
- when reference types are the same, 4.3.4
- compile-time checking of Exceptions, 11.2
-
- checked exception constraints, 18.2.5
- compile-time declaration of a method reference, 15.13.1
-
- additional argument constraints, 18.5.2.2, 18.5.2.2
- checked exception constraints, 18.2.5
- choosing the most specific method, 15.12.2.5
- compile-time step 2: determine
method Signature, 15.12.2
- expression compatibility constraints, 18.2.1, 18.2.1
- identify potentially applicable methods, 15.12.2.1
- method reference expressions, 15.13
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2
- run-time evaluation of method references, 15.13.3
- compile-time step 1: determine class or interface to search, 15.12.1
-
- class Object, 4.3.2
- compile-time declaration of a method reference, 15.13.1
- identify potentially applicable methods, 15.12.2.1
- method invocation type, 15.12.2.6
- 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, 15.9.3
- compile-time declaration of a method reference, 15.13.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
- compile-time declaration of a method reference, 15.13.1
- 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
- run-time evaluation of method references, 15.13.3, 15.13.3, 15.13.3
- complementary pairs of bounds, 18.3.1
-
- incorporation, 18.3
- compound assignment operators, 15.26.2
-
- evaluate left-hand operand first, 15.7.1
- compute target reference (if necessary), 15.12.4.1
-
- method reference expressions, 15.13
- concepts and notation, 18.1
- conditional expression type (primitive 3rd operand, part i), 15.25
- conditional expression type (primitive 3rd operand, part ii), 15.25
- conditional expression type (reference 3rd operand, part i), 15.25
- conditional expression type (reference 3rd operand, part ii), 15.25
- conditional expression type (reference 3rd operand, part iii), 15.25
- 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
- forms of expressions, 15.2, 15.2
- identify potentially applicable methods, 15.12.2.1
- integer operations, 4.2.2
- objects, 4.3.1
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2
- 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
- forms of expressions, 15.2
- constant expressions, 15.28
-
- assignment contexts, 5.2
- boolean constant expressions, 16.1.1
- boxing conversion, 5.1.7
- class String, 4.3.3
- creation of new class instances, 12.5
- final fields and static constant variables, 13.4.9
- final variables, 4.12.4
- forms of expressions, 15.2
- fp-strict expressions, 15.4
- initialization of fields in interfaces, 9.3.1
- normal annotations, 9.7.1
- numeric conditional expressions, 15.25.2
- String concatenation operator +, 15.18.1
- String literals, 3.10.5
- subsequent modification of final fields, 17.5.3
- unreachable statements, 14.21, 14.21, 14.21
- constraint formulas, 18.1.2
-
- reduction, 18.2
- constructor body, 8.8.7
-
- constructor declarations, 8.8
- definite assignment, constructors, and instance initializers, 16.9
- initial values of variables, 4.12.5
- kinds of variables, 4.12.3
- return statement, 14.17
- 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, 6.1
- field access using a primary, 15.11.1
- final fields, 8.3.1.2
- raw types, 4.8
- return statement, 14.17
- run-time evaluation of class instance creation expressions, 15.9.4
- simple expression names, 6.5.6.1
- syntactic classification of a name according to context, 6.5.1
- where types are used, 4.11
- constructor modifiers, 8.8.3
-
- @Target, 9.6.4.1
- 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
- declarations, 6.1
- syntactic classification of a name according to context, 6.5.1
- throw statement, 14.18
- where types are used, 4.11, 4.11
- 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
- normal and abrupt completion of statements, 14.1
- conversions and contexts, 5
-
- parenthesized expressions, 15.8.5
- type of an expression, 15.3
- create frame, synchronize, transfer control, 15.12.4.5
-
- run-time evaluation of method references, 15.13.3, 15.13.3, 15.13.3
- creation of new class instances, 12.5
-
- constructor declarations, 8.8
- field initialization, 8.3.2
- form of a binary, 13.1
- instance initializers, 8.6
- objects, 4.3.1
- 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
-
- functional interfaces, 9.8
- members and constructors of parameterized types, 4.5.2
- names and identifiers, 6.2
- syntactic classification of a name according to context, 6.5.1
- where types are used, 4.11, 4.11
- default constructor, 8.8.9
-
- form of a binary, 13.1
- method and constructor declarations, 13.4.12
- service provision, 7.7.4
- defaults for annotation type elements, 9.6.2
-
- marker annotations, 9.7.2
- single-element annotations, 9.7.3
- syntactic classification of a name according to context, 6.5.1
- definite assignment, 16
-
- assignment operators, 15.26
- field initialization, 8.3.2
- 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
- lambda body, 15.27.2
- parenthesized expressions, 15.8.5
- try-with-resources, 14.20.3
- 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
- dependences, 7.7.1
-
- declarations, 6.1
- form of a binary, 13.1
- Module declarations, 7.7
- syntactic classification of a name according to context, 6.5.1, 6.5.1
- detailed initialization procedure, 12.4.2
-
- field initialization, 8.3.2, 8.3.2
- form of a binary, 13.1
- initialization of fields in interfaces, 9.3.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
- preventing instantiation of a class, 8.8.10
- determining accessibility, 6.6.1
-
- preventing instantiation of a class, 8.8.10
- top level type declarations, 7.6
- determining enclosing instances, 15.9.2
-
- anonymous constructors, 15.9.5.1
- choosing the constructor and its arguments, 15.9.3, 15.9.3
- class instance creation
expressions, 15.9
- compile-time declaration of a method reference, 15.13.1
- default constructor, 8.8.9
- formal parameters, 8.8.1
- inner classes and enclosing instances, 8.1.3
- method reference expressions, 15.13
- run-time evaluation of method references, 15.13.3
- determining the class being instantiated, 15.9.1
-
- abstract classes, 8.1.1.1
- anonymous class declarations, 15.9.5
- class instance creation
expressions, 15.9
- enum types, 8.9
- determining the meaning of a name, 6.5
-
- class members, 8.2
- declarations, 6.1
- interface members, 9.2
- names and identifiers, 6.2
- obscuring, 6.4.2
- where types are used, 4.11
- 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
-
- @Target, 9.6.4.1
- array variables, 10.2
- for statements, 16.2.12
- scope of a declaration, 6.3
- syntactic classification of a name according to context, 6.5.1
- where types are used, 4.11
- enum body declarations, 8.9.2
-
- constructor declarations, 8.8
- declarations, 6.1, 6.1, 6.1
- enum constants, 8.9.1
-
- @Target, 9.6.4.1
- definite assignment and enum constants, 16.5
- definite assignment and static initializers, 16.8
- enum types, 8.9
- normal annotations, 9.7.1
- where types are used, 4.11
- enum members, 8.9.3
-
- declarations, 6.1
- form of a binary, 13.1
- enum types, 8.9
-
- @Target, 9.6.4.1
- abstract methods, 8.4.3.1
- class declarations, 8.1
- declarations, 6.1
- normal annotations, 9.7.1
- service consumption, 7.7.3
- service provision, 7.7.4
- superclasses and subclasses, 8.1.4
- switch statement, 14.11
- equality operators, 15.21
-
- constant expressions, 15.28
- switch statement, 14.11
- erasure, 4.6
-
- assignment contexts, 5.2
- cast expressions, 15.16
- class Object, 4.3.2
- 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
- declarations, 6.1
- evaluate arguments, 15.12.4.2
- field declarations, 13.4.8
- form of a binary, 13.1, 13.1, 13.1
- invocation contexts, 5.3
- method and constructor formal parameters, 13.4.14
- method and constructor type parameters, 13.4.13
- method invocation type, 15.12.2.6
- method result type, 13.4.15
- method Signature, 8.4.2
- narrowing reference conversions at run time, 5.1.6.3
- 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
-
- @SuppressWarnings, 9.6.4.5
- 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 and modules, 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 invocation expressions, 15.12
- 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
- field initialization, 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
- type of a lambda expression, 15.27.3
- 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
-
- final variables, 4.12.4
- 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
- enum body declarations, 8.9.2
- exception analysis of statements, 11.2.2
- form of a binary, 13.1
- inner classes and enclosing instances, 8.1.3, 8.1.3
- instance initializers, 8.6
- invocation contexts, 5.3
- syntactic classification of a name according to context, 6.5.1, 6.5.1
- where types are used, 4.11, 4.11
- exported and opened packages, 7.7.2
-
- @Deprecated, 9.6.4.6
- form of a binary, 13.1
- Module declarations, 7.7
- syntactic classification of a name according to context, 6.5.1
- exports directive, 7.7.2
-
- @Deprecated, 9.6.4.6
- form of a binary, 13.1
- Module declarations, 7.7
- syntactic classification of a name according to context, 6.5.1
- expression compatibility constraints, 18.2.1
- expression names, 15.14.1
-
- declarations, 6.1
- expression statements, 14.8, 16.2.6
-
- evaluation, denotation, and result, 15.1
- expression statements, 16.2.6
- identify potentially applicable methods, 15.12.2.1
- initialization of for statement, 14.14.1.1
- type of a lambda expression, 15.27.3
- expressions, 15
- expressions and run-time checks, 15.5
- extended try-with-resources, 14.20.3.2
F
- feedback, 1.5
- field (constant) declarations, 9.3
-
- @Target, 9.6.4.1
- array initializers, 10.6
- array variables, 10.2, 10.2
- declarations, 6.1
- final variables, 4.12.4
- generic interfaces and type parameters, 9.1.2
- 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
- where types are used, 4.11
- field access expressions, 15.11
-
- access to a protected member, 6.6.2.1
- assignment operators, 15.26
- names and identifiers, 6.2
- normal and abrupt completion of evaluation, 15.6
- objects, 4.3.1
- raw types, 4.8
- simple assignment operator =, 15.26.1
- static initializers, 8.7
- try-with-resources, 14.20.3
- 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
- shadowing, 6.4.1
- syntactic classification of a name according to context, 6.5.1
- where annotations may appear, 9.7.4
- where types are used, 4.11
- field initialization, 8.3.2
-
- definite assignment and static initializers, 16.8
- definite assignment, constructors, and instance initializers, 16.9
- detailed initialization procedure, 12.4.2
- exception checking, 11.2.3, 11.2.3
- field access using a primary, 15.11.1, 15.11.1
- initialization of fields in interfaces, 9.3.1
- simple expression names, 6.5.6.1
- static initializers, 8.7
- this, 15.8.3
- field modifiers, 8.3.1
-
- @Target, 9.6.4.1
- field declarations, 8.3
- 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 static constant variables, 13.4.9
-
- field declarations, 13.5.5
- 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
- detailed initialization procedure, 12.4.2
- enum body declarations, 8.9.2
- field initialization, 8.3.2
- final fields, 8.3.1.2
- final fields and static constant variables, 13.4.9
- form of a binary, 13.1
- initialization of fields in interfaces, 9.3.1
- inner classes and enclosing instances, 8.1.3, 8.1.3, 8.1.3
- lambda body, 15.27.2
- local variable declarators and types, 14.4.1
- try statement, 14.20
- try-with-resources, 14.20.3
- when initialization occurs, 12.4.1
- finalization of class instances, 12.6
-
- class Object, 4.3.2
- enum body declarations, 8.9.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
- lambda parameters, 15.27.1
- 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
-
- boolean type and boolean values, 4.2.5
- 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, 8.8.1
-
- @SuppressWarnings, 9.6.4.5
- @Target, 9.6.4.1
- array variables, 10.2
- choosing the constructor and its arguments, 15.9.3
- compile-time declaration of a method reference, 15.13.1
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- declarations, 6.1, 6.1
- default constructor, 8.8.9
- definite assignment and parameters, 16.3, 16.3
- evaluate arguments, 15.12.4.2
- final variables, 4.12.4, 4.12.4
- form of a binary, 13.1
- formal parameters, 8.8.1
- initial values of variables, 4.12.5, 4.12.5
- invoke test.main, 12.1.4
- kinds of variables, 4.12.3, 4.12.3
- lambda parameters, 15.27.1, 15.27.1
- method and constructor formal parameters, 13.4.14
- method declarations, 8.4
- reclassification of contextually ambiguous names, 6.5.2, 6.5.2
- scope of a declaration, 6.3, 6.3
- shadowing and obscuring, 6.4
- shared variables, 17.4.1
- syntactic classification of a name according to context, 6.5.1, 6.5.1, 6.5.1
- this, 15.8.3
- variables of reference type, 4.12.2
- where types are used, 4.11, 4.11, 4.11, 4.11
- forms of expressions, 15.2
-
- boolean conditional expressions, 15.25.1
- choosing the most specific method, 15.12.2.5
- class instance creation
expressions, 15.9
- conditional operator ? :, 15.25, 15.25
- expression compatibility constraints, 18.2.1, 18.2.1
- identify potentially applicable methods, 15.12.2.1
- lambda expressions, 15.27
- method reference expressions, 15.13
- more specific method inference, 18.5.4
- numeric conditional expressions, 15.25.2
- parenthesized expressions, 15.8.5
- 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
- method declarations, 9.4
- multiplication operator *, 15.17.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
- function types, 9.9
-
- checked exception constraints, 18.2.5
- expression compatibility constraints, 18.2.1
- functional interface parameterization inference, 18.5.3
- identify potentially applicable methods, 15.12.2.1
- type of a lambda expression, 15.27.3
- type of a method reference, 15.13.2
- functional interface parameterization inference, 18.5.3
-
- expression compatibility constraints, 18.2.1
- type of a lambda expression, 15.27.3
- functional interfaces, 9.8
-
- @FunctionalInterface, 9.6.4.9
- checked exception constraints, 18.2.5
- expression compatibility constraints, 18.2.1
- identify potentially applicable methods, 15.12.2.1
- lambda expressions, 15.27
- method reference expressions, 15.13
- type of a lambda expression, 15.27.3
- type of a method reference, 15.13.2
G
- generic classes and type parameters, 8.1.2
-
- @Target, 9.6.4.1
- 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
- where types are used, 4.11
- generic constructors, 8.8.4
-
- @Target, 9.6.4.1
- class instance creation
expressions, 15.9
- declarations, 6.1
- form of a binary, 13.1
- scope of a declaration, 6.3
- syntactic classification of a name according to context, 6.5.1
- type erasure, 4.6
- type variables, 4.4
- where types are used, 4.11
- generic interfaces and type parameters, 9.1.2
-
- @Target, 9.6.4.1
- capture conversion, 5.1.10
- declarations, 6.1
- form of a binary, 13.1
- parameterized types, 4.5
- scope of a declaration, 6.3
- subtyping among class and interface types, 4.10.2
- superinterfaces, 8.1.5
- syntactic classification of a name according to context, 6.5.1
- type variables, 4.4
- types, classes, and interfaces, 4.12.6
- where types are used, 4.11
- generic methods, 8.4.4
-
- @Target, 9.6.4.1
- choosing the most specific method, 15.12.2.5, 15.12.2.5, 15.12.2.5
- compile-time declaration of a method reference, 15.13.1
- compile-time step 2: determine
method Signature, 15.12.2
- declarations, 6.1
- form of a binary, 13.1
- function types, 9.9, 9.9
- method declarations, 8.4, 9.4
- method invocation expressions, 15.12
- method result, 8.4.5
- method Signature, 8.4.2
- more specific method inference, 18.5.4
- scope of a declaration, 6.3
- syntactic classification of a name according to context, 6.5.1
- type erasure, 4.6
- type variables, 4.4
- where types are used, 4.11
- 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
-
- obscuring, 6.4.2
- shadowing, 6.4.1
- host support for modules and packages, 7.2
-
- Module declarations, 7.7
- top level type declarations, 7.6
I
- identifiers, 3.8
-
- declarations, 6.1
- keywords, 3.9
- lexical grammar, 2.2
- Module declarations, 7.7
- identify potentially applicable methods, 15.12.2.1
-
- compile-time declaration of a method reference, 15.13.1
- compile-time step 1: determine class or interface to search, 15.12.1
- compile-time step 2: determine
method Signature, 15.12.2
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2
- phase 2: identify matching arity
methods applicable by loose invocation, 15.12.2.3
- phase 3: identify methods
applicable by variable arity invocation, 15.12.2.4
- identity conversion, 5.1.1
-
- assignment contexts, 5.2
- boxing conversion, 5.1.7
- capture conversion, 5.1.10
- casting contexts, 5.5, 5.5
- invocation contexts, 5.3, 5.3
- numeric contexts, 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
- incorporation, 18.3
- incrementation part of for statement, 16.2.12.2
- inference variables, 18.1.1
- inheritance and overriding, 9.4.1
-
- compile-time checking of Exceptions, 11.2
- compile-time declaration of a method reference, 15.13.1
- compile-time step 3: is the chosen method appropriate?, 15.12.3
- interface members, 9.2
- method declarations, 9.4
- inheritance, overriding, and hiding, 8.4.8
-
- class Object, 4.3.2
- compile-time declaration of a method reference, 15.13.1
- enum constants, 8.9.1
- function types, 9.9
- 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
- field initialization, 8.3.2
- initialization of fields in interfaces, 9.3.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.2
- 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
- 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 in interfaces, 9.3.1
-
- detailed initialization procedure, 12.4.2
- field initialization, 8.3.2
- initialization of for statement, 14.14.1.1
- initialization part of for statement, 16.2.12.1
- initialize test: execute initializers, 12.1.3
- 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
- determining enclosing instances, 15.9.2
- explicit constructor invocations, 8.8.7.1
- form of a binary, 13.1
- local class declarations, 14.3
- method reference expressions, 15.13
- qualified this, 15.8.4
- single-static-import declarations, 7.5.3
- single-type-import declarations, 7.5.1
- static-import-on-demand declarations, 7.5.4
- type-import-on-demand declarations, 7.5.2
- input elements and tokens, 3.5
-
- additional argument constraints, 18.5.2.2
- field initialization, 8.3.2
- lexical grammar, 2.2, 2.2
- lexical translations, 3.2
- Unicode, 3.1
- instance creation, 12.5, 15.9
-
- conditional operator ? :, 15.25, 15.25
- 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
- field initialization, 8.3.2
- form of a binary, 13.1, 13.1
- forms of expressions, 15.2
- functional interfaces, 9.8
- initial values of variables, 4.12.5, 4.12.5
- instance initializers, 8.6, 8.6
- invocation contexts, 5.3
- kinds of variables, 4.12.3
- method reference expressions, 15.13
- names and identifiers, 6.2
- 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
- where types are used, 4.11, 4.11, 4.11, 4.11
- instance initializers, 8.6
-
- class body and member declarations, 8.1.6
- definite assignment, constructors, and instance initializers, 16.9
- exception checking, 11.2.3
- field access using a primary, 15.11.1
- restrictions on field references in initializers, 8.3.3
- return statement, 14.17
- simple expression names, 6.5.6.1
- this, 15.8.3
- throw statement, 14.18
- instanceof operator, 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
- where types are used, 4.11, 4.11
- 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
-
- interface members, 9.2
- member type declarations, 8.5, 8.5
- scope of a declaration, 6.3
- interface declarations, 9.1
-
- declarations, 6.1
- reference types and values, 4.3
- types, classes, and interfaces, 4.12.6
- interface members, 9.2, 13.5.3
-
- declarations, 6.1
- form of a binary, 13.1, 13.1
- interface method body, 9.4.3
-
- form of a binary, 13.1
- superinterfaces, 8.1.5
- this, 15.8.3
- when initialization occurs, 12.4.1
- interface method declarations, 13.5.6
- interface methods, 9.4
-
- @Target, 9.6.4.1, 9.6.4.1
- array variables, 10.2
- declarations, 6.1, 6.1, 6.1
- final variables, 4.12.4
- generic interfaces and type parameters, 9.1.2
- inheritance, overriding, and hiding, 8.4.8
- 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
- where types are used, 4.11, 4.11, 4.11, 4.11
- interface modifiers, 9.1.1
-
- @Target, 9.6.4.1
- static member type declarations, 8.5.1
- interface type parameters, 13.5.4
- interfaces, 9
-
- package members, 7.1
- qualified expression names, 6.5.6.2
- reclassification of contextually ambiguous names, 6.5.2
- top level type declarations, 7.6
- interruptions, 17.2.3
- intersection types, 4.9
-
- form of a binary, 13.1, 13.1
- functional interfaces, 9.8
- type variables, 4.4
- where types are used, 4.11
- introduction, 1
- invocation applicability inference, 18.5.1
-
- additional argument constraints, 18.5.2.2, 18.5.2.2, 18.5.2.2, 18.5.2.2
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2
- phase 2: identify matching arity
methods applicable by loose invocation, 15.12.2.3
- phase 3: identify methods
applicable by variable arity invocation, 15.12.2.4
- poly method invocation compatibility, 18.5.2.1, 18.5.2.1, 18.5.2.1, 18.5.2.1
- invocation contexts, 5.3
-
- class instance creation
expressions, 15.9
- constraint formulas, 18.1.2, 18.1.2
- create frame, synchronize, transfer control, 15.12.4.5
- expression compatibility constraints, 18.2.1
- formal parameters, 8.4.1
- kinds of types and values, 4.1
- lambda expressions, 15.27
- method invocation expressions, 15.12
- method reference expressions, 15.13
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2, 15.12.2.2
- phase 2: identify matching arity
methods applicable by loose invocation, 15.12.2.3, 15.12.2.3
- phase 3: identify methods
applicable by variable arity invocation, 15.12.2.4, 15.12.2.4
- reference conditional expressions, 15.25.3
- type compatibility constraints, 18.2.2
- invocation type inference, 18.5.2
-
- additional argument constraints, 18.5.2.2, 18.5.2.2
- method invocation type, 15.12.2.6
- 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
-
- casting contexts, 5.5
- 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
-
- formal parameters, 8.4.1
L
- labeled statements, 14.7, 16.2.5
-
- break statement, 14.15
- continue statement, 14.16
- labeled statements, 16.2.5
- names and identifiers, 6.2
- lambda body, 15.27.2
-
- choosing the most specific method, 15.12.2.5
- evaluation, denotation, and result, 15.1
- identify potentially applicable methods, 15.12.2.1, 15.12.2.1
- kinds of variables, 4.12.3
- other expressions, 16.1.10
- type of a lambda expression, 15.27.3
- lambda expressions, 15.27
-
- exception analysis of expressions, 11.2.1
- forms of expressions, 15.2, 15.2
- functional interfaces, 9.8
- identify potentially applicable methods, 15.12.2.1
- return statement, 14.17
- scope of a declaration, 6.3
- lambda parameters, 15.27.1
-
- array variables, 10.2
- choosing the most specific method, 15.12.2.5, 15.12.2.5
- compile-time step 2: determine
method Signature, 15.12.2
- declarations, 6.1
- final variables, 4.12.4
- kinds of variables, 4.12.3
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2
- shadowing and obscuring, 6.4
- syntactic classification of a name according to context, 6.5.1
- where types are used, 4.11
- least upper bound, 4.10.4
-
- intersection types, 4.9
- resolution, 18.4
- 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
- loading process, 12.2.1
-
- superclasses and subclasses, 8.1.4
- superinterfaces and subinterfaces, 9.1.3
- local class declaration statements, 16.2.3
- local class declarations, 14.3
-
- class instance creation
expressions, 15.9
- class modifiers, 8.1.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
-
- @Target, 9.6.4.1
- array initializers, 10.6
- declarations, 6.1
- initial values of variables, 4.12.5
- 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
- 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
- where types are used, 4.11
- local variable declarators and types, 14.4.1
-
- array variables, 10.2, 10.2
- locate method to invoke, 15.12.4.4
-
- run-time evaluation of method references, 15.13.3, 15.13.3, 15.13.3
- 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
-
- annotations, 9.7
- meaning of expression names, 6.5.6
-
- expression names, 15.14.1
- forms of expressions, 15.2
- names and identifiers, 6.2
- try-with-resources, 14.20.3
- meaning of method names, 6.5.7
-
- names and identifiers, 6.2
- meaning of Module names and package names, 6.5.3
-
- names and identifiers, 6.2
- meaning of packageortypenames, 6.5.4
-
- type-import-on-demand declarations, 7.5.2
- meaning of type names, 6.5.5
-
- names and identifiers, 6.2
- member type declarations, 8.5, 9.5
-
- @Target, 9.6.4.1, 9.6.4.1
- 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
- form of a binary, 13.1, 13.1, 13.1, 13.1
- generic interfaces and type parameters, 9.1.2
- 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
- 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
- syntactic classification of a name according to context, 6.5.1, 6.5.1
- type-import-on-demand declarations, 7.5.2, 7.5.2
- where types are used, 4.11, 4.11, 4.11, 4.11
- 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
-
- interface method declarations, 13.5.6
- method and constructor declarations, 13.4.12
-
- method and constructor formal parameters, 13.4.14
- method result type, 13.4.15
- method and constructor formal parameters, 13.4.14
-
- interface method declarations, 13.5.6
- method and constructor overloading, 13.4.23
-
- interface method declarations, 13.5.6
- method and constructor throws, 13.4.21
-
- interface method declarations, 13.5.6
- method and constructor type parameters, 13.4.13
-
- class type parameters, 13.4.5
- method body, 8.4.7
-
- abstract methods, 8.4.3.1
- constructor body, 8.8.7
- form of a binary, 13.1
- method declarations, 8.4
- native methods, 8.4.3.4
- this, 15.8.3
- method declarations, 8.4, 9.4
-
- @Target, 9.6.4.1, 9.6.4.1
- array variables, 10.2
- class body and member declarations, 8.1.6
- declarations, 6.1, 6.1, 6.1, 6.1
- evaluation, denotation, and result, 15.1
- final variables, 4.12.4
- generic interfaces and type parameters, 9.1.2
- inheritance, overriding, and hiding, 8.4.8
- interface body and member declarations, 9.1.4
- raw types, 4.8, 4.8
- return statement, 14.17
- syntactic classification of a name according to context, 6.5.1, 6.5.1, 6.5.1, 6.5.1
- where types are used, 4.11, 4.11, 4.11, 4.11
- method invocation expressions, 15.12
-
- access to a protected member, 6.6.2.1
- conditional operator ? :, 15.25, 15.25
- constructor declarations, 8.8
- declarations, 6.1
- evaluation, denotation, and result, 15.1
- exception analysis of expressions, 11.2.1
- expressions and run-time checks, 15.5
- field initialization, 8.3.2, 8.3.2
- formal parameters, 8.4.1
- forms of expressions, 15.2
- 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
- instance initializers, 8.6
- invocation contexts, 5.3
- kinds of variables, 4.12.3, 4.12.3
- lambda parameters, 15.27.1
- method declarations, 8.4
- 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
- poly method invocation compatibility, 18.5.2.1
- return statement, 14.17
- run-time handling of an exception, 11.3
- simple method names, 6.5.7.1
- static initializers, 8.7
- syntactic classification of a name according to context, 6.5.1, 6.5.1, 6.5.1
- this, 15.8.3
- where types are used, 4.11, 4.11
- method invocation type, 15.12.2.6
-
- choosing the constructor and its arguments, 15.9.3, 15.9.3, 15.9.3
- compile-time declaration of a method reference, 15.13.1
- compile-time step 3: is the chosen method appropriate?, 15.12.3, 15.12.3
- exception analysis of expressions, 11.2.1, 11.2.1
- exception analysis of statements, 11.2.2
- expression compatibility constraints, 18.2.1
- invocation type inference, 18.5.2
- type compatibility constraints, 18.2.2
- type of a method reference, 15.13.2
- method modifiers, 8.4.3
-
- @Target, 9.6.4.1
- method declarations, 8.4
- objects, 4.3.1
- method overriding, 13.4.24
- method reference expressions, 15.13
-
- access to a protected member, 6.6.2.1
- declarations, 6.1
- expressions and run-time checks, 15.5, 15.5
- form of a binary, 13.1
- forms of expressions, 15.2, 15.2
- functional interfaces, 9.8
- identify potentially applicable methods, 15.12.2.1
- names and identifiers, 6.2
- syntactic classification of a name according to context, 6.5.1, 6.5.1, 6.5.1
- where types are used, 4.11, 4.11, 4.11
- method result, 8.4.5
-
- abstract classes, 8.1.1.1
- abstract methods, 8.4.3.1
- array variables, 10.2
- choosing the most specific method, 15.12.2.5
- class literals, 15.8.2
- constructor declarations, 8.8
- function types, 9.9
- functional interfaces, 9.8
- interface method body, 9.4.3
- method body, 8.4.7
- method declarations, 8.4
- requirements in overriding and hiding, 8.4.8.3
- return statement, 14.17
- type erasure, 4.6
- where types are used, 4.11
- method result type, 13.4.15
-
- interface method declarations, 13.5.6
- method Signature, 8.4.2
-
- @Override, 9.6.4.4
- abstract classes, 8.1.1.1
- 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
- functional interfaces, 9.8
- hiding (by class methods), 8.4.8.2
- inheritance and overriding, 9.4.1
- inheritance, overriding, and hiding, 8.4.8, 8.4.8
- inheriting methods with override-equivalent signatures, 8.4.8.4, 9.4.1.3
- interface members, 9.2
- method declarations, 8.4, 9.4
- method result, 8.4.5
- overloading, 9.4.2
- overriding (by instance methods), 8.4.8.1, 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
-
- abstract methods, 8.4.3.1
- compile-time checking of Exceptions, 11.2
- constructor throws, 8.8.5
- declarations, 6.1
- method declarations, 8.4
- syntactic classification of a name according to context, 6.5.1
- throw statement, 14.18
- where types are used, 4.11, 4.11
- Module declarations, 7.7
-
- @Target, 9.6.4.1
- compilation units, 7.3
- declarations, 6.1
- form of a binary, 13.1
- keywords, 3.9
- more specific method inference, 18.5.4
-
- choosing the most specific method, 15.12.2.5
- multiple annotations of the same type, 9.7.5
-
- annotation types, 9.6
- annotations, 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
- generic classes and type parameters, 8.1.2
- generic interfaces and type parameters, 9.1.2
- interface modifiers, 9.1.1
- lambda parameters, 15.27.1
- local variable declaration statements, 14.4
- method declarations, 9.4
- method modifiers, 8.4.3
- named packages, 7.4.1
- 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
- forms of expressions, 15.2
- integer operations, 4.2.2
N
- name classification, 6.5.1
-
- access control, 6.6
- declarations, 6.1
- reference types and values, 4.3
- name reclassification, 6.5.2
-
- method invocation expressions, 15.12
- named packages, 7.4.1
-
- @Target, 9.6.4.1
- names, 6
- names and identifiers, 6.2
-
- compile-time declaration of a method reference, 15.13.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 contexts, 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
-
- @SuppressWarnings, 9.6.4.5
- casting contexts, 5.5
- variables of reference type, 4.12.2
- narrowing reference conversions at run time, 5.1.6.3
-
- casting contexts, 5.5
- narrowing reference conversion, 5.1.6
- native methods, 8.4.3.4, 13.4.18
-
- method body, 8.4.7
- new keyword, 15.9
-
- conditional operator ? :, 15.25, 15.25
- 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
- forms of expressions, 15.2
- functional interfaces, 9.8
- initial values of variables, 4.12.5, 4.12.5
- instance initializers, 8.6
- invocation contexts, 5.3
- kinds of variables, 4.12.3
- method reference expressions, 15.13
- names and identifiers, 6.2
- objects, 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
- where types are used, 4.11, 4.11, 4.11, 4.11
- 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
-
- interface method body, 9.4.3
- 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
-
- annotations, 9.7
- defaults for annotation type elements, 9.6.2
- names and identifiers, 6.2
- syntactic classification of a name according to context, 6.5.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 conditional expressions, 15.25.2
- numeric contexts, 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, 12.5
-
- constructor declarations, 8.8
- field initialization, 8.3.2
- form of a binary, 13.1
- instance initializers, 8.6
- objects, 4.3.1
- 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, 4.3.2
-
- @Override, 9.6.4.4
- functional interfaces, 9.8
- interface members, 9.2
- method invocation type, 15.12.2.6
- narrowing reference conversions at run time, 5.1.6.3, 5.1.6.3
- String literals, 3.10.5
- obscuring, 6.4.2
-
- labeled statements, 14.7
- shadowing, 6.4.1
- observability of a Module, 7.7.6
-
- exported and opened packages, 7.7.2
- unnamed modules, 7.7.5
- observable behavior and nonterminating executions, 17.4.9
-
- actions, 17.4.2, 17.4.2
- opens directive, 7.7.2
-
- @Deprecated, 9.6.4.6
- form of a binary, 13.1
- Module declarations, 7.7
- syntactic classification of a name according to context, 6.5.1
- 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, 15.12.2, 15.12.2.1, 15.12.2.2, 15.12.2.3, 15.12.2.4, 15.12.2.5
-
- additional argument constraints, 18.5.2.2
- choosing the constructor and its arguments, 15.9.3, 15.9.3, 15.9.3, 15.9.3
- choosing the most specific method, 15.12.2.5
- compile-time declaration of a method reference, 15.13.1, 15.13.1, 15.13.1, 15.13.1, 15.13.1, 15.13.1, 15.13.1, 15.13.1, 15.13.1
- 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
- conditional operator ? :, 15.25, 15.25
- enum constants, 8.9.1
- invocation applicability inference, 18.5.1, 18.5.1
- method and constructor overloading, 13.4.23
- more specific method inference, 18.5.4, 18.5.4, 18.5.4, 18.5.4, 18.5.4
- overloading, 8.4.9
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2, 15.12.2.2, 15.12.2.2
- phase 2: identify matching arity
methods applicable by loose invocation, 15.12.2.3, 15.12.2.3, 15.12.2.3, 15.12.2.3
- phase 3: identify methods
applicable by variable arity invocation, 15.12.2.4, 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
-
- @Override, 9.6.4.4, 9.6.4.4
- final classes, 8.1.1.2
- inheritance, overriding, and hiding, 8.4.8, 8.4.8
- locate method to invoke, 15.12.4.4
- superinterfaces, 8.1.5
P
- package declarations, 7.4
-
- compilation units, 7.3
- declarations, 6.1
- package members, 7.1
- package observability and visibility, 7.4.3
-
- host support for modules and packages, 7.2
- qualified package names, 6.5.3.2
- qualified type names, 6.5.5.2
- scope of a declaration, 6.3
- simple package names, 6.5.3.1
- type-import-on-demand declarations, 7.5.2
- packages and modules, 7
- parameterized types, 4.5
-
- allowed narrowing reference conversion, 5.1.6.1
- annotation type elements, 9.6.1
- capture conversion, 5.1.10, 5.1.10
- declarations, 6.1
- determining the class being instantiated, 15.9.1
- field declarations, 13.4.8
- functional interfaces, 9.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 reference expressions, 15.13
- method result type, 13.4.15
- normal annotations, 9.7.1
- raw types, 4.8
- reference types and values, 4.3
- superclasses and subclasses, 8.1.4
- superinterfaces, 8.1.5
- superinterfaces and subinterfaces, 9.1.3
- type erasure, 4.6
- types, classes, and interfaces, 4.12.6
- where types are used, 4.11
- parenthesized expressions, 15.8.5
-
- conditional operator ? :, 15.25, 15.25
- constant expressions, 15.28
- forms of expressions, 15.2
- identify potentially applicable methods, 15.12.2.1
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2
-
- compile-time declaration of a method reference, 15.13.1, 15.13.1, 15.13.1
- compile-time step 2: determine
method Signature, 15.12.2
- invocation applicability inference, 18.5.1
- more specific method inference, 18.5.4
- phase 2: identify matching arity
methods applicable by loose invocation, 15.12.2.3
- phase 3: identify methods
applicable by variable arity invocation, 15.12.2.4
- phase 2: identify matching arity
methods applicable by loose invocation, 15.12.2.3
-
- compile-time step 2: determine
method Signature, 15.12.2
- more specific method inference, 18.5.4
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2
- phase 3: identify methods
applicable by variable arity invocation, 15.12.2.4
-
- additional argument constraints, 18.5.2.2
- choosing the constructor and its arguments, 15.9.3
- choosing the most specific method, 15.12.2.5
- compile-time declaration of a method reference, 15.13.1
- compile-time step 2: determine
method Signature, 15.12.2
- invocation applicability inference, 18.5.1
- more specific method inference, 18.5.4
- phase 2: identify matching arity
methods applicable by loose invocation, 15.12.2.3
- poly expressions, 15.2
-
- boolean conditional expressions, 15.25.1
- choosing the most specific method, 15.12.2.5
- class instance creation
expressions, 15.9
- conditional operator ? :, 15.25, 15.25
- expression compatibility constraints, 18.2.1, 18.2.1
- identify potentially applicable methods, 15.12.2.1
- lambda expressions, 15.27
- method reference expressions, 15.13
- more specific method inference, 18.5.4
- numeric conditional expressions, 15.25.2
- parenthesized expressions, 15.8.5
- poly method invocation compatibility, 18.5.2.1
-
- additional argument constraints, 18.5.2.2, 18.5.2.2
- choosing the constructor and its arguments, 15.9.3
- expression compatibility constraints, 18.2.1, 18.2.1
- method invocation type, 15.12.2.6
- 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
-
- final variables, 4.12.4
- forms of expressions, 15.2
- 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, 15.12.2.1
-
- compile-time declaration of a method reference, 15.13.1
- compile-time step 1: determine class or interface to search, 15.12.1
- compile-time step 2: determine
method Signature, 15.12.2
- phase 1: identify matching arity
methods applicable by strict invocation, 15.12.2.2
- phase 2: identify matching arity
methods applicable by loose invocation, 15.12.2.3
- phase 3: identify methods
applicable by variable arity invocation, 15.12.2.4
- predefined annotation types, 9.6.4
- 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
-
- constructor declarations, 8.8
- primary expressions, 15.8
-
- forms of expressions, 15.2
- postfix expressions, 15.14
- primitive types and values, 4.2
-
- class literals, 15.8.2
- conditional operator ? :, 15.25
- 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
- where types are used, 4.11
- program exit, 12.8
- programs and program order, 17.4.3
-
- happens-before order, 17.4.5
- synchronization order, 17.4.4
- provides directive, 7.7.4
-
- form of a binary, 13.1
- Module declarations, 7.7
- public classes, 13.4.3
- public interfaces, 13.5.1
Q
- qualified expression names, 6.5.6.2
-
- access control, 6.6
- constant expressions, 15.28
- field access expressions, 15.11
- field declarations, 8.3
- members and constructors of parameterized types, 4.5.2
- qualified package names, 6.5.3.2
- qualified packageortypenames, 6.5.4.2
- qualified this, 15.8.4
-
- declarations, 6.1
- syntactic classification of a name according to context, 6.5.1
- qualified type names, 6.5.5.2
-
- access control, 6.6
- members and constructors of parameterized types, 4.5.2
R
- raw types, 4.8
-
- @SuppressWarnings, 9.6.4.5
- assignment contexts, 5.2
- functional interfaces, 9.8
- invocation contexts, 5.3
- method reference expressions, 15.13
- reifiable types, 4.7
- subtyping among class and interface types, 4.10.2
- type arguments of parameterized types, 4.5.1
- unchecked conversion, 5.1.9
- variables of reference type, 4.12.2
- where types are used, 4.11
- reading final fields during construction, 17.5.2
- reclassification of contextually ambiguous names, 6.5.2
-
- method invocation expressions, 15.12
- reduction, 18.2
-
- invocation applicability inference, 18.5.1
- reference conditional expressions, 15.25.3
- reference equality operators == and !=, 15.21.3
-
- objects, 4.3.1
- reference types and values, 4.3
-
- class literals, 15.8.2
- 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.6
- reifiable types, 4.7
-
- @SafeVarargs, 9.6.4.7
- array creation expressions, 15.10.1
- array initializers, 10.6
- expressions and run-time checks, 15.5, 15.5
- formal parameters, 8.4.1
- method reference expressions, 15.13
- type comparison operator instanceof, 15.20.2
- relational operators, 15.20
-
- constant expressions, 15.28
- relationship to predefined classes and interfaces, 1.4
-
- Module declarations, 7.7
- 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
- repeatable annotation types, 9.6.3
-
- @Repeatable, 9.6.4.8
- evolution of annotation types, 13.5.7
- multiple annotations of the same type, 9.7.5
- requirements in overriding, 9.4.1.2
-
- variables of reference type, 4.12.2
- requirements in overriding and hiding, 8.4.8.3
-
- @SuppressWarnings, 9.6.4.5
- 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, 9.4.1.2
- type of a lambda expression, 15.27.3
- type of a method reference, 15.13.2
- variables of reference type, 4.12.2
- requires directive, 7.7.1
-
- declarations, 6.1
- form of a binary, 13.1
- Module declarations, 7.7
- syntactic classification of a name according to context, 6.5.1, 6.5.1
- resolution, 18.4
-
- additional argument constraints, 18.5.2.2
- invocation applicability inference, 18.5.1
- poly method invocation compatibility, 18.5.2.1
- resolution of symbolic references, 12.3.3
-
- link test: verify, prepare, (optionally) resolve, 12.1.2
- restrictions on field references in initializers, 8.3.3
-
- field initialization, 8.3.2
- instance initializers, 8.6
- static initializers, 8.7
- when initialization occurs, 12.4.1
- return statement, 14.17
-
- break, continue, return, and throw statements, 16.2.13
- constructor body, 8.8.7, 8.8.7
- instance initializers, 8.6
- interface method body, 9.4.3
- method body, 8.4.7
- normal and abrupt completion of statements, 14.1
- static initializers, 8.7
- run-time evaluation of array access expressions, 15.10.4
-
- array access, 10.4
- evaluation order for other expressions, 15.7.5
- normal and abrupt completion of evaluation, 15.6, 15.6
- run-time evaluation of array creation expressions, 15.10.2
-
- evaluation order for other expressions, 15.7.5
- initial values of variables, 4.12.5
- kinds of variables, 4.12.3
- normal and abrupt completion of evaluation, 15.6, 15.6
- run-time evaluation of class instance creation expressions, 15.9.4
-
- evaluation order for other expressions, 15.7.5
- normal and abrupt completion of evaluation, 15.6
- throw statement, 14.18
- run-time evaluation of lambda expressions, 15.27.4
-
- creation of new class instances, 12.5
- evaluation order for other expressions, 15.7.5
- normal and abrupt completion of evaluation, 15.6
- run-time evaluation of method invocation, 15.12.4
-
- evaluation order for other expressions, 15.7.5
- overloading, 8.4.9
- run-time evaluation of method references, 15.13.3
-
- creation of new class instances, 12.5
- evaluation order for other expressions, 15.7.5
- normal and abrupt completion of evaluation, 15.6
- 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
- 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 (constant) declarations, 9.3
- 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
- lambda parameters, 15.27.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
- simple type names, 6.5.5.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
- service consumption, 7.7.3
-
- form of a binary, 13.1
- host support for modules and packages, 7.2
- Module declarations, 7.7
- service provision, 7.7.4
-
- form of a binary, 13.1
- Module declarations, 7.7
- shadowing, 6.4.1
-
- compile-time step 1: determine class or interface to search, 15.12.1
- obscuring, 6.4.2
- scope of a declaration, 6.3
- 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 (constant) declarations, 9.3
- 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
- lambda parameters, 15.27.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 contexts, 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
-
- method declarations, 8.4
- 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
- annotations, 9.7
- single-static-import declarations, 7.5.3
-
- declarations, 6.1, 6.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, 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
- sleep and yield, 17.3
- standalone expressions, 15.2
-
- boolean conditional expressions, 15.25.1
- choosing the most specific method, 15.12.2.5
- class instance creation
expressions, 15.9
- conditional operator ? :, 15.25, 15.25
- expression compatibility constraints, 18.2.1, 18.2.1
- identify potentially applicable methods, 15.12.2.1
- lambda expressions, 15.27
- method reference expressions, 15.13
- more specific method inference, 18.5.4
- numeric conditional expressions, 15.25.2
- parenthesized expressions, 15.8.5
- 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
- simple expression names, 6.5.6.1
- 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
- field access using a primary, 15.11.1
- final fields, 8.3.1.2
- generic classes and type parameters, 8.1.2
- inner classes and enclosing instances, 8.1.3
- restrictions on field references in initializers, 8.3.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
- static methods, 8.4.3.2, 13.4.19
-
- generic classes and type parameters, 8.1.2
- interface method declarations, 13.5.6
- simple expression names, 6.5.6.1
- static-import-on-demand declarations, 7.5.4
-
- declarations, 6.1, 6.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
- String contexts, 5.4
- types, classes, and interfaces, 4.12.6
- String contexts, 5.4
-
- boolean type and boolean values, 4.2.5
- String conversion, 5.1.11
-
- String concatenation operator +, 15.18.1
- String contexts, 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, 4.3.3
-
- lexical literals, 15.8.1
- literals, 3.10
- String literals, 3.10.5, 3.10.5
- subsequent modification of final fields, 17.5.3
- subtyping, 4.10
-
- allowed narrowing reference conversion, 5.1.6.1
- assignment contexts, 5.2
- choosing the most specific method, 15.12.2.5
- constraint formulas, 18.1.2
- invocation contexts, 5.3
- method throws, 8.4.6
- parameterized types, 4.5
- subtyping constraints, 18.2.3
- type arguments of parameterized types, 4.5.1, 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
- subtyping constraints, 18.2.3
- superclasses and subclasses, 8.1.4
-
- class members, 8.2
- class Object, 4.3.2
- dependences, 7.7.1
- enum types, 8.9
- final classes, 8.1.1.2
- kinds of variables, 4.12.3
- loading process, 12.2.1
- subtyping among class and interface types, 4.10.2
- syntactic classification of a name according to context, 6.5.1
- where types are used, 4.11, 4.11
- 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
-
- class members, 8.2
- narrowing reference conversions at run time, 5.1.6.3
- subtyping among class and interface types, 4.10.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
- when initialization occurs, 12.4.1
- where types are used, 4.11, 4.11
- superinterfaces and subinterfaces, 9.1.3
-
- interface members, 9.2
- loading process, 12.2.1
- subtyping among class and interface types, 4.10.2
- superclasses and subclasses, 8.1.4
- superinterfaces, 8.1.5
- syntactic classification of a name according to context, 6.5.1
- where types are used, 4.11, 4.11
- switch statement, 14.11
-
- scope of a declaration, 6.3, 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
- declarations, 6.1
- reference types and values, 4.3
- syntactic grammar, 2.3
-
- compilation units, 7.3
- input elements and tokens, 3.5
- lexical translations, 3.2
- syntax, 19
T
- this, 15.8.3
-
- field initialization, 8.3.2, 8.3.2
- initialization of fields in interfaces, 9.3.1
- 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 modules and packages, 7.2
- interface modifiers, 9.1.1
- package members, 7.1, 7.1
- scope of a declaration, 6.3, 6.3
- shadowing, 6.4.1
- single-static-import declarations, 7.5.3
- single-type-import declarations, 7.5.1
- transient fields, 8.3.1.3, 13.4.11
- try statement, 14.20
-
- @Target, 9.6.4.1
- compile-time checking of Exceptions, 11.2
- declarations, 6.1, 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
- method throws, 8.4.6
- 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
- where types are used, 4.11, 4.11
- try statements, 16.2.15
- try-catch statement, 14.20.1
-
- try statement, 14.20
- try-catch-finally statement, 14.20.2
-
- try statement, 14.20
- try-finally statement, 14.20.2
-
- try statement, 14.20
- try-with-resources, 14.20.3
-
- @Target, 9.6.4.1
- declarations, 6.1
- final variables, 4.12.4
- local variable declaration statements, 14.4
- scope of a declaration, 6.3
- syntactic classification of a name according to context, 6.5.1, 6.5.1
- try statement, 14.20
- where types are used, 4.11
- try-with-resources (basic), 14.20.3.1
- try-with-resources (extended), 14.20.3.2
- type arguments of parameterized types, 4.5.1
-
- capture conversion, 5.1.10
- class instance creation
expressions, 15.9, 15.9
- constraint formulas, 18.1.2
- explicit constructor invocations, 8.8.7.1
- method invocation expressions, 15.12
- method reference expressions, 15.13
- reference types and values, 4.3
- reifiable types, 4.7
- subtyping among class and interface types, 4.10.2
- subtyping constraints, 18.2.3
- type equality constraints, 18.2.4
- types, classes, and interfaces, 4.12.6
- unchecked conversion, 5.1.9
- where types are used, 4.11
- 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
- where types are used, 4.11, 4.11
- type compatibility constraints, 18.2.2
- type equality constraints, 18.2.4
- type erasure, 4.6
-
- assignment contexts, 5.2
- cast expressions, 15.16
- class Object, 4.3.2
- 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
- declarations, 6.1
- evaluate arguments, 15.12.4.2
- field declarations, 13.4.8
- form of a binary, 13.1, 13.1, 13.1
- invocation contexts, 5.3
- method and constructor formal parameters, 13.4.14
- method and constructor type parameters, 13.4.13
- method invocation type, 15.12.2.6
- method result type, 13.4.15
- method Signature, 8.4.2
- narrowing reference conversions at run time, 5.1.6.3
- raw types, 4.8
- requirements in overriding and hiding, 8.4.8.3
- type variables, 4.4
- type inference, 18
-
- compile-time step 2: determine
method Signature, 15.12.2
- generic constructors, 8.8.4
- generic methods, 8.4.4
- type of a constructor, 8.8.6
-
- members and constructors of parameterized types, 4.5.2
- type of a lambda expression, 15.27.3
-
- @SuppressWarnings, 9.6.4.5
- additional argument constraints, 18.5.2.2, 18.5.2.2
- checked exception constraints, 18.2.5
- expression compatibility constraints, 18.2.1
- lambda parameters, 15.27.1
- type of a method reference, 15.13.2
-
- @SuppressWarnings, 9.6.4.5
- checked exception constraints, 18.2.5
- type of an expression, 15.3
- type variables, 4.4
-
- 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
- intersection types, 4.9
- 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
- where types are used, 4.11
- 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, 4.1
-
- 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.10.3
- array creation expressions, 15.10.1
- bitwise complement operator ~, 15.15.5
- numeric contexts, 5.6
- shift operators, 15.19
- unary minus operator -, 15.15.4
- unary plus operator +, 15.15.3
- unary operators, 15.15
-
- final variables, 4.12.4
- 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.1
- assert statement, 14.10
- assignment contexts, 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 contexts, 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
- invocation contexts, 5.3
- iteration of for statement, 14.14.1.2
- logical complement operator !, 15.15.6
- multiplicative operators, 15.17
- numeric contexts, 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.4.7
- @SuppressWarnings, 9.6.4.5
- assignment contexts, 5.2
- invocation contexts, 5.3
- method result, 8.4.5
- type compatibility constraints, 18.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 modules, 7.7.5
-
- unnamed packages, 7.4.2
- unnamed packages, 7.4.2
-
- compilation units, 7.3
- unnamed modules, 7.7.5
- unreachable statements, 14.21
-
- final fields and static constant variables, 13.4.9
- final variables, 4.12.4
- instance initializers, 8.6
- lambda body, 15.27.2
- static initializers, 8.7
- uses directive, 7.7.3
-
- form of a binary, 13.1
- host support for modules and packages, 7.2
- Module declarations, 7.7
- uses of inference, 18.5
V
- value set conversion, 5.1.13
-
- assignment contexts, 5.2
- binary numeric promotion, 5.6.2
- casting contexts, 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
- invocation contexts, 5.3
- simple assignment operator =, 15.26.1, 15.26.1
- unary minus operator -, 15.15.4
- unary numeric promotion, 5.6.1
- variables, 4.12
-
- evaluation, denotation, and result, 15.1
- variables of primitive type, 4.12.1
- variables of reference type, 4.12.2
-
- @SafeVarargs, 9.6.4.7
- checked and unchecked narrowing reference conversions, 5.1.6.2
- 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
-
- @Deprecated, 9.6.4.6
- 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
-
- constraint formulas, 18.1.2
- narrowing reference conversions at run time, 5.1.6.3
- type equality constraints, 18.2.4
- where annotations may appear, 9.7.4
-
- annotation types, 9.6
- annotations, 9.7
- array types, 10.1
- 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
- generic classes and type parameters, 8.1.2
- generic interfaces and type parameters, 9.1.2
- interface modifiers, 9.1.1
- lambda parameters, 15.27.1
- local variable declaration statements, 14.4
- method declarations, 9.4
- method modifiers, 8.4.3
- named packages, 7.4.1
- where types are used, 4.11
-
- @Target, 9.6.4.1
- lexical translations, 3.2
- syntactic classification of a name according to context, 6.5.1
- where annotations may appear, 9.7.4
- 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
- lexical grammar, 2.2
- lexical translations, 3.2
- widening and narrowing primitive conversion, 5.1.4
-
- casting contexts, 5.5
- widening primitive conversion, 5.1.2
-
- assignment contexts, 5.2
- binary numeric promotion, 5.6.2
- casting contexts, 5.5
- invocation contexts, 5.3, 5.3
- numeric contexts, 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 contexts, 5.2
- casting contexts, 5.5, 5.5
- floating-point operations, 4.2.4
- integer operations, 4.2.2
- invocation contexts, 5.3, 5.3
- numeric contexts, 5.6
- word tearing, 17.6
- write-protected fields, 17.5.4