Book description
Mastering advanced features of Java and implement them to build amazing projects
About This Book- Take advantage of Java's new modularity features to write real-world applications that solve a variety of problems
- Explore the major concepts introduced with Java 9, including modular programming, HTTP 2.0, API changes, and more
- Get to grips with tools, techniques and best practices to enhance application development
This learning path is for Java developers who are looking to move a level up and learn how to build robust applications in the latest version of Java.
What You Will Learn- Package Java applications as modules using the Java Platform Module System
- Implement process management in Java using the all-new process handling API
- Integrate your applications with third-party services in the cloud
- Interact with mail servers, using JavaMail to build an application that filters spam messages
- Use JavaFX to build rich GUI-based applications, which are an essential element of application development
- Leverage the possibilities provided by the newly introduced Java shell
- Test your application's effectiveness with the JVM harness
- See how Java 9 provides support for the HTTP 2.0 standard
Java 9 and its new features add to the richness of the language; Java is one of the languages most used by developers to build robust software applications. Java 9 comes with a special emphasis on modularity with its integration with Jigsaw. This course is your one-stop guide to mastering the language.
You'll be provided with an overview and explanation of the new features introduced in Java 9 and the importance of the new APIs and enhancements. Some new features of Java 9 are ground-breaking; if you are an experienced programmer, you will be able to make your enterprise applications leaner by learning these new features. You'll be provided with practical guidance in applying your newly acquired knowledge of Java 9 and further information on future developments of the Java platform. This course will improve your productivity, making your applications faster. Next, you'll go on to implement everything you've learned by building 10 cool projects. You will learn to build an email filter that separates spam messages from all your inboxes, a social media aggregator app that will help you efficiently track various feeds, and a microservice for a client/server note application, to name just a few.
By the end of this course, you will be well acquainted with Java 9 features and able to build your own applications and projects.
This Learning Path contains the best content from the following two recently published Packt products:
- Mastering Java 9
- Java 9 Programming Blueprints
This practical guide is filled with real-world examples. Its projects will help you get acquainted with concepts in depth.
Downloading the example code for this book You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.
Table of contents
- Title Page - Courses
- Copyright and Credits - Courses
- Packt Upsell - Courses
- Preface
- Mastering Java 9
- The Java 9 Landscape
-
Discovering Java 9
- Improved Contended Locking [JEP 143]
- Segmented code cache [JEP 197]
- Smart Java compilation, phase two [JEP 199]
- Resolving Lint and Doclint warnings [JEP 212]
- Tiered attribution for javac [JEP 215]
- Annotations pipeline 2.0 [JEP 217]
- New version-string scheme [JEP 223]
- Generating run-time compiler tests automatically [JEP 233]
- Testing class-file attributes generated by Javac [JEP 235]
- Storing interned strings in CDS archives [JEP 250]
- Preparing JavaFX UI controls and CSS APIs for modularization [JEP 253]
- Compact strings [JEP 254]
- Merging selected Xerces 2.11.0 updates into JAXP [JEP 255]
- Updating JavaFX/Media to newer version of GStreamer [JEP 257]
- HarfBuzz Font-Layout Engine [JEP 258]
- HiDPI graphics on Windows and Linux [JEP 263]
- Marlin graphics renderer [JEP 265]
- Unicode 8.0.0 [JEP 267]
- Reserved stack areas for critical sections [JEP 270]
- Dynamic linking of language-defined object models [JEP 276]
- Additional tests for humongous objects in G1 [JEP 278]
- Improving test-failure troubleshooting [JEP 279]
- Optimizing string concatenation [JEP 280]
- HotSpot C++ unit-test framework [JEP 281]
- Enabling GTK 3 on Linux [JEP 283]
- New HotSpot build system [JEP 284]
- Summary
- Java 9 Language Enhancements
-
Building Modular Applications with Java 9
- A modular primer
- Reviewing Java's platform module system [JEP-200]
- Modularizing JDK source code [JEP-201]
- Understanding modular run-time images [JEP-220]
- Getting to know the module system [JEP-261]
- Modular Java application packaging [JEP-275]
- JLink - The Java Linker [JEP-282]
- Encapsulating most internal APIs [JEP-260]
- Summary
- Migrating Applications to Java 9
- Experimenting with the Java Shell
- Leveraging the New Default G1 Garbage Collector
- Microbenchmarking Applications with JMH
- Making Use of the ProcessHandle API
- Fine-Grained Stack Tracing
-
New Tools and Tool Enhancements
- The new HTTP client [JEP-110]
- Simplified Doclet API [JEP-221]
- HTML5 Javadoc [JEP-224]
- Javadoc search [JEP-225]
- Remove launch-time JRE version selection [JEP-231]
- Parser API for Nashorn [JEP-236]
- Multi-release JAR files [JEP-238]
- Java-level JVM compiler interface [JEP-243]
- BeanInfo annotations [JEP-256]
- TIFF image input/output [JEP-262]
- Platform logging API and service [JEP-264]
- XML Catalogs [JEP-268]
- Convenience factory methods for collections [JEP-269]
- Platform-specific desktop features [JEP-272]
- Enhanced method handles [JEP-274]
- Enhanced deprecation [JEP-277]
- Summary
- Concurrency and Reactive Programming
- Security Enhancements
- Command Line Flags
- Best Practices In Java 9
-
Future Directions
- Future Changes to the JDK
- Future changes to the Java Compiler
- Future Changes to the Java Virtual Machine
- Future Changes to JavaX
- Ongoing Special Projects
- Summary
- Java 9 Programming Blueprints
- Introduction
- Managing Processes in Java
- Duplicate File Finder
- Date Calculator
-
Sunago - A Social Media Aggregator
-
Getting started
- Setting up the user interface
- Setting up the controller
- Writing the model class
- Finishing up the controller
- Adding an image for the item
- Building the preferences user interface
- Saving user preferences
- Plugins and extensions with the Service Provider Interface
- Resource handling with try-with-resources
- Adding a network - Twitter
- Adding another network - Instagram
- Summary
-
Getting started
- Sunago - An Android Port
- Email and Spam Management with MailFilter
- Photo Management with PhotoBeans
- Taking Notes with Monumentum
- Serverless Java
- DeskDroid - A Desktop Client for Your Android Phone
- What is Next?
- Bibliography
Product information
- Title: Java 9: Building Robust Modular Applications
- Author(s):
- Release date: April 2018
- Publisher(s): Packt Publishing
- ISBN: 9781788832823
You might also like
book
Learning Go
Go is rapidly becoming the preferred language for building web services. While there are plenty of …
book
JUnit in Action, Third Edition
JUnit in Action, Third Edition has been completely rewritten for this release. The book is full …
book
AWS Cookbook
This practical guide provides over 70 self-contained recipes to help you creatively solve common AWS challenges …
book
Designing Machine Learning Systems
Machine learning systems are both complex and unique. Complex because they consist of many different components …