Java Language Specification
Java SE 13 Edition

The Java Language Specification, Java SE 13 Edition, was the official, authoritative specification of the Java programming language. It was published in August 2019 and followed the Java SE 12 Edition of the JLS.

It specifies the Java programming language as implemented in Java SE 13.

This Java SE 13 Edition goes beyond the Java SE 12 Edition of the JLS by specifying the following feature:

  • switch-expressions (but only as a preview feature)
  • text blocks (but only as a preview feature)

This language change was introduced in Java SE 13 in 2019.

Our Java misconceptions relate to the following sections of that specification:

3.9
Keywords
3.10.1
Integer Literals
3.10.2
Floating-Point Literals
3.10.5
String Literals
3.10.7
The Null Literal
4.1
The Kinds of Types and Values
4.2.1
Integral Types and Values
4.2.5
The boolean Type and boolean Values
4.3.1
Objects
4.3.2
The Class Object
4.12
Variables
4.12.2
Variables of Reference Type
4.12.3
Kinds of Variables
4.12.4
final Variables
5.1
Kinds of Conversion
5.1.8
Unboxing Conversion
5.1.11
String Conversion
6.3
Scope of a Declaration
6.6.1
Determining Accessibility
7
Packages and Modules
8.1
Class Declarations
8.2
Class Members
8.3
Field Declarations
8.3.2
Field Initialization
8.4
Method Declarations
8.4.1
Formal Parameters
8.8
Constructor Declarations
8.8.1
Formal Parameters
8.8.9
Default Constructor
10.1
Array Types
10.3
Array Creation
10.2
Array Variables
10.4
Array Access
10.6
Array Initializers
10.7
Array Members
11.1.1
The Kinds of Exceptions
12.5
Creation of New Class Instances
14.4
Local Variable Declaration Statements
14.4.1
Local Variable Declarators and Types
14.4.2
Execution of Local Variable Declarations
14.8
Expression Statements
14.9
The if Statement
14.9.2
The if-then-else Statement
14.14
The for Statement
14.14.1.2
Iteration of for Statement
14.14.2
The enhanced for statement
14.17
The return Statement
15
Expressions
15.2
Forms of Expressions
15.3
Type of an Expression
15.8
Primary Expressions
15.8.3
this
15.8.5
Parenthesized Expressions
15.9
Class Instance Creation Expressions
15.10.1
Array Creation Expressions
15.10.2
Run-Time Evaluation of Array Creation Expressions
15.11
Field Access Expressions
15.12
Method Invocation Expressions
15.14.2
Postfix Increment Operator ++
15.15.1
Prefix Increment Operator ++
15.17
Multiplicative Operators
15.18
Additive Operators
15.18.1
String Concatenation Operator +
15.21
Equality Operators
15.21.2
Boolean Equality Operators == and !=
15.22.1
Integer Bitwise Operators &, ^, and |
15.22.2
Boolean Logical Operators &, ^, and |
15.23
Conditional-And Operator &&
15.24
Conditional-Or Operator ||
15.25
Conditional Operator ? :
15.26
Assignment Operators
16
Definite Assignment

Stay up-to-date

Follow us on  twitter to hear about new misconceptions.