Java 10 is the first version to adopt a new release cycle, offering 109 new features, of which the most interesting one is the type inference of local variables.
12 key new features of Java 10:
- JEP 286: Inference of types of local variables. This feature was discussed in the community for a long time and a survey was conducted to see JEP 286 survey results
- JEP 296: Merging JDK’s Multiple Code Repositories into a Repository
- JEP 304: Garbage Collector Interface. Improve the source code isolation of different garbage collectors by introducing a clean garbage collector (GC) interface.
- JEP 307: Introducing Parallel Full GC to G1
- JEP 310: Application Data Sharing. To improve startup and footprint, expand again on existing Class Data Sharing (“CDS”) functionality to allow application classes to be placed in shared archives
- JEP 312: Thread-local control. Allows stopping a single thread instead of only enabling or stopping all threads
- JEP 313: Removing Native-Header Generation Tool (javah)
- JEP 314: Extra Unicode Language Tag Extensions. Including cu (currency type), fw (week of the first day of the week), rg (area coverage), tz (time zone), etc.
- JEP 316: Allocate heap memory on spare memory devices. Allow HotSpot VMs to allocate Java object heap on spare memory devices
- JEP 317: Java-based JIT Compiler (trial version)
- JEP 319: Root certificate. Root certificate in open source Java SE Root CA program
- JEP 322: Time-based release model. “Features releases” version will contain new features, “Update releases” version only fix bugs