Java SE 18.3 ( JSR 383)
Early Draft Review Specification
Iris Clark & Brian Goetz
2017/10/22 23:53 -0700 [8b6c38c6599b]

This Specification defines version 18.3 of the Java Platform, Standard Edition.

Contents
1Summary
2Structure
3Definitions
4Feature summary
5Feature details
6Conformance
Annexes
A1Complete API Specification
A2API Specification differences
A3Java Language & Virtual Machine Specifications
1
Summary  

This release continues the evolution of the Platform to ensure the broadest possible success of the core Java technology. It adds features which address trends in the programming community and hardware architectures.

2
Structure  

This document specifies API features, enhancements, clarifications, and bug fixes. The specifications of those changes are contained in two accompanying documents: Annex 1 is the complete Java SE 18.3 API Specification and Annex 2 is an annotated API specification showing the exact differences relative to Java SE 9.

This Specification includes the Java SE 18.3 Editions of The Java Language Specification and The Java Virtual Machine Specification in Annex 3. The Java SE 18.3 Editions contain all corrections and clarifications made since the Java SE 9 Editions, as well as additions for features.

The Final Release of this Specification is expected to include all of the currently described features and updates; however, further changes may be forthcoming. For example, the Expert Group could determine that a feature is not yet ready for standardization.

3
Definitions  

Changes to the Java SE Platform Specification are categorized as either features or enhancements. A feature is, roughly speaking, a change of which at least one of the following statements is true:

Any addition that is not a feature is considered an enhancement.

There is, obviously, room for judgment when interpreting this definition. In order to maximize the visibility of Platform revisions we generally tend to consider borderline items to be features rather than enhancements.

4
Feature summary  
LanguageLocal-Variable Type Inference
5
Feature details  

Work on features in the Java SE 18.3 Reference Implementation, which is the Java Development Kit, version 18.3 (JDK 18.3), is organized in terms of JDK Enhancement Proposals (JEPs). Each feature description includes a link to the corresponding JEP document as a convenience, but that document is not a normative part of this Specification.

Language
Local-Variable Type Inference

Enhance the Java Language to extend type inference to declarations of local variables with initializers.

6
Conformance  

The Technology Compatibility Kit (TCK) for this Specification will test all of the Java SE modules included in an Implementation, and it will require that set to be closed. An Implementation that passes the TCK is considered to fully implement this Specification even if it does not include all of the Java SE modules.

This Specification defines the Licensor Name Space on a module-by-module basis. Provided that an Implementation that fully implements this Specification includes the required Licensor Name Space for each included module then it is not considered to subset the Licensor Name Space.

An Implementation of this Specification may provide a means to create further Implementations. If it does so then any such new Implementation need not include all of the modules present in the original Implementation, but it must satisfy the constraints of the preceding paragraphs.