Java 11 – Features and Comparison

19 Feb, 2022
Every 6 months, Oracle releases new Java versions. The September Java 11 version is already making a lot of buzz in the computer science world even before it was released by declaring that from now on Java is gonna be paid for commercial use. The following articles will show important features, enhancements, and deprecated features about JDK 11.
The deployment stack required for running applets and web applications has been removed from JDK which was deprecated in JDK 9.
An entire section of supported browsers has been removed from the list of supported configurations due to the unavailability of the deployment stack.
Auto-update has been removed from JRE installations in Windows and macOS.
JavaFX and Java Mission Control is now available as a separate download.
Java language translation for French, German, Italian, Korean, Portuguese (Brazilian), Spanish, and Swedish is no longer provided.
In this version, JRE or Server JRE is no longer offered. Only JDK is offered.
Updated packaging format for Windows has changed from tar.gz to .zip
Updated package format for macOS has changed from .app to .dmg
isBlank(): This is a boolean method. It just returns true when a string is empty and vice-versa.
Java
// Java Program to demonstrate// the working of isBlank() method class GFG {    public static void main(String args[])    {        String str1 = "";        System.out.println(str1.isBlank());         String str2 = "GeeksForGeeks";        System.out.println(str2.isBlank());    }}
true
false
lines(): This method is to return a collection of strings that are divided by line terminators.
Java
// Java Program to demonstrate// the working of lines() method import java.util.*; class GFG {    public static void main(String args[])    {        String str = "Geeks\nFor\nGeeks";        System.out.println(            str.lines().collect(Collectors.toList()));    }}
Output
Geeks
For
Geeks
repeat(n): Result is the concatenated string of original string repeated the number of times in the argument.
Java
// Java Program to demonstrate// the working of repeat() method class GFG {    public static void main(String args[])    {        String str = "GeeksForGeeks";        System.out.println(str.repeat(4));    }}
GeeksForGeeksGeeksForGeeksGeeksForGeeksGeeksForGeeks
stripLeading(): It is used to remove the white space which is in front of the string
Java
// Java Program to demonstrate// the working of stripLeading() method class GFG {    public static void main(String args[])    {        String str = " GeeksForGeeks";        System.out.println(str.stripLeading());    }}
GeeksForGeeks
stripTrailing(): It is used to remove the white space which is in the back of the string
Java
// Java Program to demonstrate// the working of stripTrailing() method class GFG {    public static void main(String args[])    {        String str = "GeeksForGeeks ";        System.out.println(str.stripTrailing());    }}
GeeksForGeeks
strip(): It is used to remove the white spaces which are in front and back of the string
Java
// Java Program to demonstrate// the working of strip() method class GFG {    public static void main(String args[])    {        String str = " GeeksForGeeks ";        System.out.println(str.strip());    }}
GeeksForGeeks
writeString(): This is to write some content in a file.
jshell>Files.writeString(Path.of(example.txt), "GeeksForGeeks!");
readString(): This is used to read the contents of a file.
jshell>Files.readString(Path.of(example.txt));

Output: "GeeksForGeeks!"
isSameFile(): This method is used to know whether two paths locate the same file or not.
jshell>Files.isSameFile(Path.of("example1.txt"), Path.of("example1.txt"));
Output: true

jshell>Files.isSameFile(Path.of("example2.txt"), Path.of("example1.txt"));
Output: false
asMatchPredicate(): This method is similar to Java 8 method asPredicate(). Introduced in JDK 11, this method will create a predicate if the pattern matches with the input string.
jshell>var str = Pattern.compile("aba").asMatchPredicate();

jshell>str.test(aabb);
Output: false

jshell>str.test(aba);
Output: true
This handles memory allocation but does not have an actual memory reclamation mechanism. Once the available Java heap is exhausted, JVM will shut down. 
Its goals are:- 
Performance testing
Memory pressure testing
last drop latency improvements
These modules were deprecated in Java 9 with a declaration to remove those in further JDK versions.
stop(Throwable obj) and destroy() objects that have been removed from the JDK 11 because they only throw UnSupportedOperation and NoSuchMethodError respectively. Other than that, they were of no use. 
This method is used to convert the given time to a unit like DAY, MONTH, YEAR, and for time too.
jshell>TimeUnit c = TimeUnit.DAYS;
Output: DAYS

jshell>c.convert(Duration.ofHours(24));
Output: 1

jshell>c.convert(Duration.ofHours(50));
Output: 2
Optional.isEmpty(): This method returns true if the value of any object is null and else returns false.
jshell>Optional str = Optional.empty();
jshell>str.isEmpty();
Output: true

jshell>Optional str = Optional.of("TonyStark");
jshell>str.isEmpty();
Output: false
JDK 11 allows ‘var’ to be used in lambda expressions. This was introduced to be consistent with the local ‘var’ syntax of Java 10.
Java
// Java program to show the Variable// used in the lambda expression public class VarInLambdaExample {    public static void main(String[] args)    {        IntStream.of(1, 2, 3, 5, 6, 7)            .filter((var i) -> i % 2 == 0)            .forEach(System.out::println);    }}
Output: 
2
6
Java
// Variable without using lambda expression public class WithoutVarInLambdaExample {    public static void main(String[] args)    {        IntStream.of(1, 2, 3, 5, 6, 7)            .filter(i -> i % 2 == 0)            .forEach(System.out::println);    }}
Output: 
2
6
Removal of com.sun.awt.AWTUtilities ClassRemoval of Lucida Fonts from Oracle JDKRemoval of appletviewer LauncherOracle JDK’s javax.imageio JPEG Plugin No Longer Supports Images with alphaRemoval of sun.misc.Unsafe.defineClassRemoval of Thread.destroy() and Thread.stop(Throwable) MethodsRemoval of sun.nio.ch.disableSystemWideOverlappingFileLockCheck PropertyRemoval of sun.locale.formatasdefault PropertyRemoval of JVM-MANAGEMENT-MIB.mibRemoval of SNMP AgentRemoval of Java Deployment TechnologiesRemoval of JMC from the Oracle JDKRemoval of JavaFX from the Oracle JDKJEP 320 Remove the Java EE and CORBA Modules
Removal of com.sun.awt.AWTUtilities Class
Removal of Lucida Fonts from Oracle JDK
Removal of appletviewer Launcher
Oracle JDK’s javax.imageio JPEG Plugin No Longer Supports Images with alpha
Removal of sun.misc.Unsafe.defineClass
Removal of Thread.destroy() and Thread.stop(Throwable) Methods
Removal of sun.nio.ch.disableSystemWideOverlappingFileLockCheck Property
Removal of sun.locale.formatasdefault Property
Removal of JVM-MANAGEMENT-MIB.mib
Removal of SNMP Agent
Removal of Java Deployment Technologies
Removal of JMC from the Oracle JDK
Removal of JavaFX from the Oracle JDK
JEP 320 Remove the Java EE and CORBA Modules
ThreadPoolExecutor Should Not Specify a Dependency on FinalizationJEP 335 Deprecate the Nashorn JavaScript EngineDeprecate -XX+AggressiveOptsObsolete Support for Commercial FeaturesDeprecate Stream-Based GSSContext MethodsJEP 336 Deprecate the Pack200 Tools and API
ThreadPoolExecutor Should Not Specify a Dependency on Finalization
JEP 335 Deprecate the Nashorn JavaScript Engine
Deprecate -XX+AggressiveOpts
Obsolete Support for Commercial Features
Deprecate Stream-Based GSSContext Methods
JEP 336 Deprecate the Pack200 Tools and API
nishkarshgandhi
java-file-handling
Java-Strings
Technical Scripter 2018
Java
Technical Scripter
Java-Strings
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Object Oriented Programming (OOPs) Concept in Java
How to iterate any Map in Java
Interfaces in Java
HashMap in Java with Examples
ArrayList in Java
Collections in Java
Multidimensional Arrays in Java
Singleton Class in Java
Stack Class in Java
Set in Java