Join Kathryn Hodge for an in-depth discussion in this video What you should know, part of First Look: Java 10 and Java 11.
- [Instructor] Before starting this course, you should know I'm using an early adopter's version of Java 11, because the final version has not yet been released to the public. Java 11 is set to release September 25, 2018, but things will probably not change much. Now where do we learn about all of the new features that have been released? Well, we can go to the openjdk.jave.net/projects/jdk/10, and then /11 for Java 11 respectively.
Going to this website, we see a lot of numbers and acronyms. We see JSR and JEP, so let's break that down. First, we have JSR, and this stands for Java Specification Request. A JSR describes proposed and final specifications for the Java platform. A JSR may contain several features within it, and by clicking into this, we can the umbrella JSR that contains all of the features organized underneath it.
In the Java world, each feature is called a JEP, or a JDK Enhancement Proposal. So each of these features is a JEP. You are probably already familiar with the JDK, but the JDK is the Java Development Kit, which is the software development environment used for developing Java applications. Now to keep these proposed features organized and identifiable, each JSR and JEP has a number associated with it, and that's where these numbers come in.
For example, in Java 11, JEP 328 refers to Flight Recorder. Many of these features introduced in Java 10 and 11 involve something called the JVM, or the Java Virtual Machine. If you've worked with Java for awhile you probably already know this term too. But the Java Virtual Machine is what enables a computer to run Java programs and other programs compiled to Java byte code by interpreting this byte code. Lastly, we have J-A-R or JAR, which stands for Java Archive.
With our acronyms in check, let's jump into the new features.
- Local variable type inferences
- Garbage collection improvements
- Application class-data sharing
- Thread-local handshakes
- Standardizing the HTTP client
- JVM improvements