Mastering Java 9

Your road to becoming a Java Ninja begins here!
Preview in Mapt

Mastering Java 9

Dr. Edward Lavieri, Peter Verhas

4 customer reviews
Your road to becoming a Java Ninja begins here!
Mapt Subscription
FREE
$29.99/m after trial
eBook
$25.20
RRP $35.99
Save 29%
Print + eBook
$44.99
RRP $44.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$25.20
$44.99
$29.99 p/m after trial
RRP $35.99
RRP $44.99
Subscription
eBook
Print + eBook
Start 30 Day Trial

Frequently bought together


Mastering Java 9 Book Cover
Mastering Java 9
$ 35.99
$ 25.20
Design Patterns and Best Practices in Java 9 Book Cover
Design Patterns and Best Practices in Java 9
$ 35.99
$ 25.20
Buy 2 for $35.00
Save $36.98
Add to Cart

Book Details

ISBN 139781786468734
Paperback456 pages

Book Description

Java 9 and its new features add to the richness of the language, 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 would be 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 of the new features of Java 9 are ground-breaking and if you are an experienced programmer, you will be able to make your enterprise application leaner by learning these new features. You'll be provided with practical guidance in applying the newly acquired knowledge in regards to Java 9 and further information on future developments of the Java platform. This book will improve your productivity, making your application faster. By learning the best practices in Java, you'll become the “go-to” person in your organization.

By the end of the book, you'll not only know the important concepts of Java 9, but you'll also have a nuanced understanding of the important aspects of programming with this great language.

Table of Contents

Chapter 1: The Java 9 Landscape
Java 9 at 20,000 feet
Breaking the monolith
Playing around with the Java Shell
Taking control of external processes
Boosting performance with G1
Measuring performance with JMH
Getting started with HTTP 2.0
Encompassing reactive programming
Expanding the wish list
Summary
Chapter 2: 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
Chapter 3: Java 9 Language Enhancements
Working with variable handlers [JEP 193]
Eliding depreciation warnings on import statements [JEP 211]
Milling Project Coin [JEP 213]
Processing import statements correctly [JEP 216]
Summary
Chapter 4: 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
Chapter 5: Migrating Applications to Java 9
Quick review of Project Jigsaw
How modules fit into the Java landscape
Migration planning
Advice from Oracle
Useful tools
Summary
Chapter 6: Experimenting with the Java Shell
What is JShell?
Getting Started with JShell
Practical uses of JShell
Working with scripts
Summary
Chapter 7: Leveraging the New Default G1 Garbage Collector
Overview of garbage collection
Pre-Java 9 garbage collection
Collecting garbage with the new Java platform
Persistent issues
Summary
Chapter 8: Microbenchmarking Applications with JMH
Microbenchmarking overview
Microbenchmarking with Maven
Benchmarking options
Techniques for avoiding microbenchmarking pitfalls
Summary
Chapter 9: Making Use of the ProcessHandle API
What are processes?
The new ProcessHandle interface
Getting the PID of the current process
Getting information about a process
Listing processes
Waiting for processes
Terminating processes
A small process controller application
Summary
Chapter 10: Fine-Grained Stack Tracing
Overview of the Java Stack
The importance of stack information
Working with StackWalker
StackFrame
Performance
Summary
Chapter 11: 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
Chapter 12: Concurrency and Reactive Programming
Reactive Programming
The New Flow API
Additional Concurrency Updates
Spin-Wait Hints
Summary
Chapter 13: Security Enhancements
Datagram Transport Layer Security
Creating PKCS12 keystores
Improving security application performance
TLS application-layer protocol negotiation extension
Leveraging CPU instructions for GHASH and RSA
OCSP stapling for TLS
DRBG-based SecureRandom implementations
Summary
Chapter 14: Command Line Flags
Unified JVM Logging [JEP 158]
Compiler control [JEP 165]
Diagnostic commands [JEP 228]
Heap profiling agent [JEP 240]
Removing your JHAT [JEP 241]
JVM command-line flag argument validation [JEP 245]
Compile for older platform versions [JEP 247]
Summary
Chapter 15: Best Practices In Java 9
Support for UTF-8
Unicode 7.0.0
The Linux/AArch64 port
Multi-resolution Images
Common Locale Data Repository (CLDR)
Summary
Chapter 16: 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

What You Will Learn

  • Write modular Java applications in terms of the newly introduced module system
  • Migrate existing Java applications to modular ones
  • Understand how to use the G1 garbage collector in order to leverage the performance of your applications
  • Leverage the possibilities provided 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
  • Use the new process API
  • Discover additional enhancements and features provided by Java 9

Authors

Table of Contents

Chapter 1: The Java 9 Landscape
Java 9 at 20,000 feet
Breaking the monolith
Playing around with the Java Shell
Taking control of external processes
Boosting performance with G1
Measuring performance with JMH
Getting started with HTTP 2.0
Encompassing reactive programming
Expanding the wish list
Summary
Chapter 2: 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
Chapter 3: Java 9 Language Enhancements
Working with variable handlers [JEP 193]
Eliding depreciation warnings on import statements [JEP 211]
Milling Project Coin [JEP 213]
Processing import statements correctly [JEP 216]
Summary
Chapter 4: 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
Chapter 5: Migrating Applications to Java 9
Quick review of Project Jigsaw
How modules fit into the Java landscape
Migration planning
Advice from Oracle
Useful tools
Summary
Chapter 6: Experimenting with the Java Shell
What is JShell?
Getting Started with JShell
Practical uses of JShell
Working with scripts
Summary
Chapter 7: Leveraging the New Default G1 Garbage Collector
Overview of garbage collection
Pre-Java 9 garbage collection
Collecting garbage with the new Java platform
Persistent issues
Summary
Chapter 8: Microbenchmarking Applications with JMH
Microbenchmarking overview
Microbenchmarking with Maven
Benchmarking options
Techniques for avoiding microbenchmarking pitfalls
Summary
Chapter 9: Making Use of the ProcessHandle API
What are processes?
The new ProcessHandle interface
Getting the PID of the current process
Getting information about a process
Listing processes
Waiting for processes
Terminating processes
A small process controller application
Summary
Chapter 10: Fine-Grained Stack Tracing
Overview of the Java Stack
The importance of stack information
Working with StackWalker
StackFrame
Performance
Summary
Chapter 11: 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
Chapter 12: Concurrency and Reactive Programming
Reactive Programming
The New Flow API
Additional Concurrency Updates
Spin-Wait Hints
Summary
Chapter 13: Security Enhancements
Datagram Transport Layer Security
Creating PKCS12 keystores
Improving security application performance
TLS application-layer protocol negotiation extension
Leveraging CPU instructions for GHASH and RSA
OCSP stapling for TLS
DRBG-based SecureRandom implementations
Summary
Chapter 14: Command Line Flags
Unified JVM Logging [JEP 158]
Compiler control [JEP 165]
Diagnostic commands [JEP 228]
Heap profiling agent [JEP 240]
Removing your JHAT [JEP 241]
JVM command-line flag argument validation [JEP 245]
Compile for older platform versions [JEP 247]
Summary
Chapter 15: Best Practices In Java 9
Support for UTF-8
Unicode 7.0.0
The Linux/AArch64 port
Multi-resolution Images
Common Locale Data Repository (CLDR)
Summary
Chapter 16: 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

Book Details

ISBN 139781786468734
Paperback456 pages
Read More
From 4 reviews

Read More Reviews

Recommended for You

Architecting Modern Java EE Applications Book Cover
Architecting Modern Java EE Applications
$ 39.99
$ 28.00
Understanding Software Book Cover
Understanding Software
$ 23.99
$ 16.80
Modular Programming in Java 9 Book Cover
Modular Programming in Java 9
$ 27.99
$ 19.60
Distributed Computing in Java 9 Book Cover
Distributed Computing in Java 9
$ 35.99
$ 25.20
Java 9 Concurrency Cookbook - Second Edition Book Cover
Java 9 Concurrency Cookbook - Second Edition
$ 39.99
$ 28.00
Learning Spring 5.0 Book Cover
Learning Spring 5.0
$ 39.99
$ 28.00