### Top 10 Java 9 Tutorials and Courses — Best of Lot Must Read\n\n#### A list of useful Java 9 tutorials and courses for Java developers to explore new JDK 9 features\n\nIt’s been more than a year since JDK 9 was launched and the new year is probably the best time to learn Java 9 and get yourself familiar with new features and enhancements on existing APIs. The highlight of JDK 9 release was **Project Jigsaw** or **Module system**.\n\nThe Java 9 Platform Module System allows Java to move forward by modularizing the JDK as well as adding modules as first-class citizens to Java, but that’s not the only thing to look forward, there are many small changes which are very useful in day-to-day coding.\n\nFor me the static factory methods introduced in List, Set, and Map to create an [immutable list](http://javarevisited.blogspot.sg/2012/07/create-read-only-list-map-set-example-java.html#axzz55lrMRnNC), set and the map is the most interesting one. Along with several changes on Stream API and [Optional](http://www.java67.com/2018/06/java-8-optional-example-ispresent-orElse-get.html) class. Those are the ones, I will most likely to use as soon as we start with JDK 9. \n \nIf you are a regular reader of [my blog](http://javarevisited.blogspot.com/) then you would notice that I haven’t published an article on JDK 9 here yet but I have been learning and doing some research in last a couple of days and this article is the result of that. \n \nAlso, when Java 8 was released in 2014, I had published a [**list of best Java 8 tutorials**](http://www.java67.com/2014/09/top-10-java-8-tutorials-best-of-lot.html) which many of my readers have appreciated and I thought to the same this time as well \n \nIn this article, I am going to share some of the interesting articles, tutorials and online courses which you can use to learn Java 9. These are some of the best resources on JDK 9 at the moment. They are very good to start with and get yourself familiar. \n \nFor more deep dive and in-depth knowledge, I suggest picking a good book on Java 9 or joining a course e.g. [**What’s New in Java 9 — Modules and more**](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=562016.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fwhats-new-in-java-9%2F) is a better option.\n\n[!(https://hackernoon.com/hn-images/1*y54WU3aHBo2kyLs_AqwMDQ.jpeg)](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=562016.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fwhats-new-in-java-9%2F)\n\n### List of Must Read Java 9 Tutorials\n\nAnyway, without further Ado, here is the list of the useful tutorial to learn JDK 9 features: \n \n \n**1\\.** [**Nine New Developer Features in JDK 9**](https://www.oracle.com/corporate/features/jdk9-new-developer-features.html) \nThis is one the first article I read to learn about Java 9 features. The article explains two of my favorite features, [Factory Methods for Collections](https://javarevisited.blogspot.com/2018/02/java-9-example-factory-methods-for-collections-immutable-list-set-map.html) (JEP 269) and Stream API Enhancements. If you are interested in those two then you can read more on that article. \n \nAlso, this is actually excerpted from the July/August 2017 issue of Java Magazine.\n\nSo if you want to learn all 9 feature make sure you read the full article in Java Magazine. You can find the link at the bottom of that article. \n \n \n**2\\.** [**9 New Features in Java 9**](http://pluralsight.pxf.io/c/1193463/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fblog%2Fsoftware-development%2Fjava-9-new-features) \nThis is another good list of essential JDK 9 feature on Pluralsight blog by Sander Make, author of [Java 9 Modularity: First Look](https://pluralsight.pxf.io/c/1193463/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fcourses%2Fjava-9-modularity-first-look) course on PluralSight. \n \nIn this article, Sander has gone through 9 of the essential JDK 9 feature which matters most for Java developers.\n\nI particularly liked his example of The Java Platform module system and how modules are linked together in modularized JDK. \n \nThe list also covers **JShell**: the interactive Java REPL, Improved Javadoc, Collection factory methods, Stream API improvements, Private interface methods, HTTP/2, and Multi-release JARs.\n\n[!(https://hackernoon.com/hn-images/0*d1eB9Xr0uX2nox0E.png)](http://pluralsight.pxf.io/c/1193463/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fblog%2Fsoftware-development%2Fjava-9-new-features)\n\n[**3\\. Code First Java 9 Module System Tutorial**](https://blog.codefx.org/java/java-module-system-tutorial/) \nProject Jigsaw or Module system was one of the highlights of JDK 9 release and this is probably the best course to start with that.\n\nThe writer is also the author of [The Java 9 Module System](https://www.amazon.com/Java-Module-System-Nicolai-Parlog/dp/1617294284/?tag=javamysqlanta-20) book, which means you will get a comprehensive overview of authority. \n \nIn this tutorial, you will first learn a simple Hello World example and learn how to take an existing demo application and modularize it with Java 9. \n \nYou will also learn how to create module declarations ( module-info.java) and use the module path to compile, package, and run the application.\n\nIf you want to learn more, Joshua Bloch has also provided a nice overview of JDK 9’s Module system on Item 51 of [**Effective Java 3rd Edition**](https://www.amazon.com/Effective-Java-3rd-Joshua-Bloch/dp/0134685997/?tag=javamysqlanta-20), one of the must-read books for Java programmers in 2018.\n\n[!(https://hackernoon.com/hn-images/1*Svlt3saihXUV4LiiVPtk3g.jpeg)](https://www.amazon.com/Effective-Java-3rd-Joshua-Bloch/dp/0134685997/?tag=javamysqlanta-20)\n\n[**4\\. First steps with Java 9 and Project Jigsaw**](https://blog.codecentric.de/en/2015/11/first-steps-with-java9-jigsaw-part-1/)This is another great tutorial to learn Project Jigsaw or JDK 9 Module system. \n \nIt’s a two-part tutorial, in the first part you will learn about what is a module and how the Java Runtime was modularized with a demo application that demonstrated how to (and not to) compile, package and run a modular application. \n \nIn the second part, he explains how does Jigsaw interoperate with non-modular legacy code and how you can build your own Java runtime images. \n \nIn short, very comprehensive coverage of [Java 9 Module system](http://pluralsight.pxf.io/c/1193463/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fblog%2Fsoftware-development%2Fjava-9-new-features) with some hands-on advice on how to compile, build and run a modular application in Java 9. \n \n \n**5.** [**What’s New in Java 9 — Modules and More!**](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=562016.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fwhats-new-in-java-9%2F) \nThis is one of the best course material to learn Java 9 at the moment. You will not only learn about Installation and Setup of JDK 9 but also all important Java 9 features e.g.\n\n1. The Java Shell (REPL)\n2. The Java 9 Platform Module System\n3. [The Streams API](http://www.java67.com/2018/06/java-8-streamcollect-example.html)\n4. Private Method in Interfaces\n5. Factory Methods for Collections\n6. [Try With Resources](https://javarevisited.blogspot.com/2011/09/arm-automatic-resource-management-in.html#axzz5bAq1c3jf)\n7. [Diamond Operator](https://javarevisited.blogspot.com/2014/04/10-jdk-7-features-to-revisit-before-you.html)\n8. SafeVarargs Annotation\n\nIt also covers updates to the Process API, which now allows Java developers to work with native processes directly in Java code. In short, one of the best resource to learn Java 9 in quick time.\n\n[**6\\. Java 9 New Features on Baeldung**](http://www.baeldung.com/new-java-9) \nThe Baeldung blog also has a nice overview of most of the useful Java 9 features. It’s not comprehensive but provide a nice overview of what every Java developer should know about Java 9 changes. \n \nIt includes both major changes like Project Jigsaw or Module system and Http 2.0 client but also smaller language enhancements like Diamond Operator Extension, provide methods on an interface, Try-with-resource enhancements, and new API enhancements e.g. changes on [Optional](http://javarevisited.blogspot.sg/2017/04/10-examples-of-optional-in-java-8.html#axzz4pXFCC65F) and [Stream API](http://www.java67.com/2014/04/java-8-stream-examples-and-tutorial.html). It also covers Jshell\n\n[!(https://hackernoon.com/hn-images/0*W9dFnHv-KdW_RdKc.png)](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=562016.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fwhats-new-in-java-9%2F)\n\nIn short, if you need a quick overview of JDK 9 features then this is a good list to start with. If you need a more comprehensive overview I suggest joining [**What’s New in Java 9 — Modules and more**](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=562016.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fwhats-new-in-java-9%2F) on Udemy.\n\n7\\. [**Java 9 Features with Examples on JournalDev**](https://www.journaldev.com/13121/java-9-features-with-examples) \nThis is another good list of JDK 9 features with small examples. It includes most of the JDK 9 changes at language and API level along with Module Systems and Factory method enhancements. \n \nHere is a full list of features which is covered in this article:\n\n1. Java 9 REPL (JShell)\n2. Factory Methods for Immutable List, Set, Map, and Map.Entry\n3. Private methods in Interfaces\n4. Java 9 Module System\n5. Process API Improvements\n6. Try With Resources Improvement\n7. CompletableFuture API Improvements\n8. Reactive Streams\n9. Diamond Operator for Anonymous Inner Class\n10. Optional Class Improvements\n11. Stream API Improvements\n12. Enhanced @Deprecated annotation\n13. HTTP 2 Client\n14. Мulti-Resolution Image API\n15. Miscellaneous Java 9 Features\n\nI really like their short description and short examples. The list is pretty much similar to the previous list and you can refer it if you need a quick overview.\n\nIf you need to learn each feature in-depth then you better join this [**Java 9 course**](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=562016.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fwhats-new-in-java-9%2F) on Udemy, you may get this course in just $9.99 on Udemy’s flash sale.\n\nThat’s all about some of the **best tutorials and courses to learn Java 9 features**. The work on JDK 10 is already started but like me, there are many Java developers out there which are still going through JDK 8 features.\n\nI don’t know if I am going to use module system anytime soon but I am sure, I’ll use the API enchantments e.g. factory methods for creating immutable List, Set, and Map as well as some Stream API enchantments as soon as we move to Java 9.\n\nOther **Programming Articles and Resources** you may like to explore \n[10 Things Java Developers Should Learn in 2019](http://javarevisited.blogspot.sg/2017/12/10-things-java-programmers-should-learn.html#axzz53ENLS1RB) \n[10 Essential Testing Tools for Java Programmers](http://javarevisited.blogspot.sg/2018/01/10-unit-testing-and-integration-tools-for-java-programmers.html) \n[20 Essential libraries for Java Developers](http://javarevisited.blogspot.sg/2018/01/top-20-libraries-and-apis-for-java-programmers.html) \n[20 Books Java Programmers Can Read in 2019](http://javarevisited.blogspot.sg/2017/12/top-20-java-books-of-2017-which-you-can-read-in-2018.html) \n[10 Everyday tools for Java Programmers](http://javarevisited.blogspot.sg/2017/03/10-tools-used-by-java-programming-Developers.html#axzz55lrMRnNC) \n[5 Free Courses to Learn Spring and Spring Boot Online](http://www.java67.com/2017/11/top-5-free-core-spring-mvc-courses-learn-online.html) \n[10 Frameworks for Java and Web Developers](http://javarevisited.blogspot.sg/2018/01/10-frameworks-java-and-web-developers-should-learn.html)\n\nThanks for reading this article so far. If you like these tutorials then please share with your friends and colleagues. If you have any questions or feedback then please drop a note.