Skip to main content

Java 9 Unique features

Java 9 was initially release in September 2017, but it got some improvements in the October update later on it was final release in January 2018.
ReleaseRelease dateHighlights
Java SE 92017-09-21Initial release
Java SE 9.0.12017-10-17October 2017 security fixes and critical bug fixes
Java SE 9.0.42018-01-16Final release for JDK 9; January 2018 security fixes and critical bug fixes
Java 9 Introduced an entire new structure, it is the first update that have an efficient architecture for small size devices and it was made possible due to modular structure. Java 9 introduced a new system to deal with the small devices with java modules. I have the following bunch of unique features/emhacements:
1. Java 9 REPL (JShell) : Introduced a new system to test the program using JShell. The Java Shell tool (JShell) is an interactive tool for learning the Java programming language and prototyping Java code. JShell is a Read-Evaluate-Print Loop (REPL), which evaluates declarations, statements, and expressions as they are entered and immediately shows the results. The tool is run from the command line.
2. Private methods in Interfaces
3. Factory Methods for Immutable List, Set, Map and Map.Entry
4. Java 9 Module System : One of the big change/feature in Java 9 is the Module System. Oracle Corp introduce the Jigsaw Project. The primary goals of this Project were to:
  • Make it easier for developers to construct and maintain libraries
  • and large applications;
  • Improve the security and maintainability of Java SE Platform Implementations in general, and the JDK in particular;
  • Enable improved application performance; and
  • Enable the Java SE Platform, and the JDK, to scale down for use in small computing devices and dense cloud deployments.
  • To achieve these goals we designed and implemented a standard module system for the Java SE 9 Platform and applied that system to the Platform itself and to its Reference Implementation, JDK 9. The module system is powerful enough to modularize the JDK and other large legacy code bases, yet is still approachable by all developers.
5. Modular JDK : Entire JDK was divided into modules and each module is depended on another except base module i.e. top level/default module. A key motivation of the module system is strong encapsulation and Each module must explicitly state its dependencies. According to Java Specification Lead, Mark Reinhold, a module in Java is a named, self-describing collection of code and data in the form of a type (classes and interfaces). Until Java 8, packages were the highest level of aggregation possible, but Java 9 introduced a new language element called a module. This is basically a named group of packages that can be reused like a resource. Every module has a module descriptor, a metadata specifying the following items:
  • Name of the module
  • Services offered by this module
  • Services consumed by this module
  • The reflection it allows to other modules
  • Dependencies it has on other modules
  • Specification of the list of packages that are publicly exported to other modules as module APIs
6. Modular Java Source Code
7. Modular Run-time Images
8. Encapsulate Java Internal APIs
9. Java Platform Module System
10. Process API Improvements :  New interfaces in Process API:
  • java.lang.ProcessHandle
  • java.lang.ProcessHandle.Info
11. Try With Resources Improvement
12. CompletableFuture API Improvements
13. Reactive Streams : Java SE 9 has introduced the following API to develop Reactive Streams in Java-based applications.
  • java.util.concurrent.Flow
  • java.util.concurrent.Flow.Publisher
  • java.util.concurrent.Flow.Subscriber
  • java.util.concurrent.Flow.Processor
14. Diamond Operator for Anonymous Inner Class
15. Optional Class Improvements
16. Stream API Improvements
17. Enhanced @Deprecated annotation
18. Multi-Resolution Image API : Oracle Corp is going to introduce a new Multi-Resolution Image API. one of the most Important interface in this API is MultiResolutionImage . It is available in java.awt.image package
20. Miscellaneous Java 9 Features :
  • GC (Garbage Collector) Improvements
  • Stack-Walking API
  • Filter Incoming Serialization Data
  • Deprecate the Applet API
  • Indify String Concatenation
  • Enhanced Method Handles
  • Java Platform Logging API and Service
  • Compact Strings
  • Parser API for Nashorn
  • Javadoc Search
  • HTML5 Javadoc
  • HTTP 2 Client

Comments

Top 5 Most Read Posts

Who is Peter Lynch and what is his philosophy in equity market investment? 25 Golden Rules of the most successful Fund Manager.

Peter Lynch (born January 19, 1944) is an American investor, mutual fund manager, and philanthropist. As the manager of the Magellan Fund at Fidelity Investments between 1977 and 1990, Lynch averaged a 29.2% annual return, consistently more than doubling the S&P 500 stock market index and making it the best-performing mutual fund in the world. During his 13 year tenure, assets under management increased from $18 million to $14 billion. He also co-authored a number of books and papers on investing and coined a number of well known mantras of modern individual investing strategies, such as Invest in what you know and ten bagger. Lynch is consistently described as a "legend" by the financial media for his performance record. Base on his career I have compiled his investing rules here. 25 GOLDEN RULES by @Peter Lynch 1: Nobody can predict interest rates, the future direction of the economy or the stock market. Dismiss all such forecasts & concentrate on what's actual

What is version checking in Hibernate ?

Version checking used in hibernate when more then one thread trying to access same data. For example : User A edit the row of the TABLE for update ( In the User Interface changing data This is user thinking time) and in the same time User B edit the same record for update and click the update. Then User A click the Update and update done. Change made by user B is gone. In hibernate you can prevent slate object updation using version checking. Check the version of the row when you are updating the row. Get the version of the row when you are fetching the row of the TABLE for update. On the time of updation just fetch the version number and match with your version number (on the time of fetching).

What is wrong with HDFC securities? Are they doing some fraudulent activities or just causing issues with their platform as usually it don't work during market hours?

I have opened a DEMAT account with HDFC Securities in 2019 as HDFC group is well known for the customer services and I also hold a salary account with HDFC Bank, DEMAT account with the following conditions/offers as expressed by the executive. Trading Account Opening Charges (One Time) :  ₹999 (At that time it offered on lower price, I forget the exact price) Trading Annual Maintenance Charges AMC (Yearly Fee) : ₹0 Demat Account Opening Charges (One Time) : ₹0 Demat Account Annual Maintenance Charges AMC (Yearly Fee) : ₹750, nil if portfolio value below ₹2 lacs. Equity Delivery : 0.50% Equity Intraday : 0.05% Equity Futures : 0.05% Equity Options : ₹100 per lot or 1% of the premium (whichever is higher) Currency Futures : ₹23 per contract Currency Options : ₹20 per contract Commodity Futures : 0.02% for Intraday / 0.025% for positional Commodity Options : 0.02% for Intraday / 0.025% for positional It was going good but after 2-3 months I got to know that there are som

Fundamental Analysis : Asian Paints Ltd.

Asian Paints group is the largest paint manufacturer in India also engaged in the business of manufacturing of varnishes, enamels or lacquers, surfacing preparation, organic composite solvents and thinners. It operates in 15 countries and has 26 paint manufacturing facilities in the world serving consumers in over 60 countries. Besides Asian Paints, the group operates around the world through its various brands viz. Asian Paints Berger, Apco Coatings, SCIB Paints, Taubmans, Causeway Paints and Kadisco Asian Paints. It also manufactures metal sanitary ware such as bath, sinks, washbasins and similar articles. Recently introduced Lightings, Furnishings and Furniture thus adding more products in the Home décor and Interior Design category. Market Cap ₹ 244,763 Cr. Current Price ₹ 2,552 High / Low ₹ 2,873 / 1,483 Stock P/E 89.0 Book Value ₹ 115 Dividend Yield 0.47 % ROCE 33.8 % ROE 27.5 % Face Value ₹ 1.00 Price to book value 22.2 EPS ₹ 28.7 High price all time ₹ 2,873 Low price all time ₹

What are JEE Containers? What are their different types?

Containers are the interface between a component and the low-level, platform-specific functionality that supports the component. Before it can be executed, a web, enterprise bean, or application client component must be assembled into a Java EE module and deployed into its container. The assembly process involves specifying container settings for each component in the Java EE application and for the Java EE application itself. Container settings customize the underlying support provided by the Java EE server, including such services as security, transaction management, Java Naming and Directory Interface (JNDI) API lookups, and remote connectivity. Here are some of the highlights. The Java EE security model lets you configure a web component or enterprise bean so that system resources are accessed only by authorized users. The Java EE transaction model lets you specify relationships among methods that make up a single transaction so that all methods in one transaction are treated as a