What are Java 11’s new features?
Java 11
Oracle released a new version of Java as Java 18 in September 25, 2018. It was a revolutionary release of the Java for software development platform. It includes various upgrades to the Java programming, JVM, Tools and libraries.
Important Changes and Information
- The deployment stack required for running applets and web applications has been removed from JDK which was deprecated in JDK 9.
- Entire section of supported browsers has been removed from list of supported configurations due to unavailability of 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
New Features and Enhancements
- New String methods:
- isBlank(): This is a boolean method. It just returns true when a string is empty and vice-versa.
- lines(): This method is to return a collection of strings which are divided by line terminators.
- repeat(n): Result is the concatenated string of original string repeated the number of times in the argument.
- stripLeading(): It is used to remove the white-space which is in-front of the string
- stripTrailing(): It is used to remove the white-space which is in back of the string
- strip(): It is used to remove the white-spaces which are in-front and back of the string
- New File Methods
- 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
- Pattern recognizing methods:
- asMatchPredicate():- This method is similar to Java 8 method asPredicate(). Introduced in JDK 11, this method will create a predicate if pattern matches with input string.
jshell>var str = Pattern.compile("aba").asMatchPredicate(); jshell>str.test(aabb); Output: false jshell>str.test(aba); Output: true
- asMatchPredicate():- This method is similar to Java 8 method asPredicate(). Introduced in JDK 11, this method will create a predicate if pattern matches with input string.
- Epsilon Garbage Collector:
This handles memory allocation but does not have 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
- Removed the Java EE and CORBA modules: These modules were deprecated in Java 9 with declaration to remove those in further JDK versions.
- Removal of thread functions: stop(Throwable obj) and destroy() objects have been removed from the JDK 11 because they only throw UnSupportedOperation and NoSuchMethodError respectively. Other than that, they were of no use.
- TimeUnit Conversion: 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
- Local-Variable Syntax for Lambda Parameters: JDK 11 allows ‘var’ to be used in lambda expressions. This was introduced to be consistent with local ‘var’ syntax of Java 10.
Removed Features and Options
- 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
Deprecated Features and Options
- 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
Comments
Post a Comment