BPB Online LLP
JAVA 9.0 To 13.0 New Features
Mandar Jog
JAVA 9.0 To 13.0 New Features
US$ 19.95
The publisher has enabled DRM protection, which means that you need to use the BookFusion iOS, Android or Web app to read this eBook. This eBook cannot be used outside of the BookFusion platform.
Description
Contents
Reviews

A comprehensive guide to study the version updates from JDK9.0 to JDK13.0

Key Features
Learn the journey of Java from its initial days till date.
Learn how to implement modular programming in Java9.
Study the updates in different versions of Java from version 9.0 to 13.0.
Understand the need and working of reactive programming.
Learn to migrate the pre-existing Java code to new versions.
Learn how to use jshell to test a new API before using in a project.

Description
Version release is one of the important phases of success of any programming language. Over the years, Java had made many improvements in its API to make to reliable and flexible to use. This book aims at providing you information related to all the updates from JDK9.0 to JDK13.0 in one place.

This book starts with a brief history of Java. It covers how Java has evolved as a complete programming language over the years by launching different versions. You will learn the concept of module system and other important concepts introduced in JSE9 .0 and JSE10.0. Moving ahead, the book will take you through updates in JDK11.0. Concepts like Epsilon, ZGC, and Nest-Based access control have also been discussed.
Though the version updates are good to learn, they create complexities in updating the existing code to make it compatible with the new version. This book talks in detail about how you can migrate your legacy code to match up with the new versions. It also covers how to use jshell, a tool used to test your code snippet without writing the complete application class, with numerous examples. Further, this book covers in detail the concept of reactive programming. Concepts like publisher, subscriber, subscription and back-pressure have been discussed with examples.
At the end of the book, you will learn about the very recent updates which have been released by Java. The chapters talk about JDK12.0 and JDK13.0. They cover concepts like Shenondaoh, microbenchmark suit, modified switch expression from JDK12.0. Though, Java13 is still a hot-plated dish, this book gives you a fair idea about what are the new updates which have been proposed in this version.

What You Will Learn
By the end of this book, you will be able to implement the updates provided in different versions of Java. This book has covered the updates from version 9.0 to 13.0. You will be able to work with the Java Module System. You will be able to test the new API using jshell. Along with this, you will be able to migrate your legacy code to match the recommendations of new versions of Java.

Who This Book is For
This book covers the new version updates in Java. So, prior knowledge of Java is recommended before reading this book. Though we are covering the versions from JSE9.0 onwards, it is not necessary that the reader should be expert in the earlier versions. If you are keen to know the recent developments in Java API, this is the perfect book for you.

Table of Contents
1. Insights of Versioning
2. What’s new in Java9
3. Understanding JDK10 – Step towards JDK11
4. Dive in JDK11
5. Migrating the code
6. Working with JShell
7. Reactive Programming and Concurrency Updates
8. What next in Java12
9. Introduction to Java13

About the Author
Mandar Jog is a passionate Java Trainer with over 15 years of experience in retail and corporate training. He has global certifications like SCJP and SCWCD. His areas of expertise are Java, J2EE (Spring, Hibernate). He has delivered more than 500 training sessions on Core Java, Web Technologies, Hibernate, Spring Boot, Angular, etc.

LinkedIn Profile: https://www.linkedin.com/in/mandar-jog-0ba9a01b/

Language
English
ISBN
9789389328608
Cover Page
Title Page
Copyright Page
Dedication
About the Author
Acknowledgement
Preface
Errata
Table of Contents
1. Insight of Versioning
Introduction
Structure
Objective
Project Green: the beginning
Versions of Java
Time-based release version
Conclusion
Questions
2. What’s New in Java 9
Introduction
Structure
Objective
Project Jigsaw
Compact profiles
Java Platform Module System
Explore module
Module types
Listing JDK modules
Java module graph
Declaring the module
requires
exports
uses
provides…with
Download Java 9
Create your first Java module
Compiling module
Executing module
Working with multiple modules
Working with Eclipse
Working with Apache NetBeans
Java Enhancement Proposals (JEP) in JSE 9.0
JEP 102: Process API updates
JEP 110: HTTP/2 Client (Incubator)
JEP 158: unified JVM logging
JEP 213: Milling Project Coin
JEP 214: remove GC combinations deprecated in JDK 8
JEP 220: modular run-time images
JEP 221: new Doclet API
JEP 222: JShell (Read-Eval-Print Loop)
JEP 238: Multi release JAR file
JEP 248: make G1 the default garbage collector
JEP 251: multi-resolution images
JEP 254: compact Strings
JEP 282: jlink, the Java linker
JEP 289: deprecate Applet API
JEP 291:deprecate the concurrent mark sweep garbage collector
Conclusion
3. Understanding JDK 10 - Step towards JDK 11
Introduction
Structure
Objective
Downloading JDK 10
JEP 286: local variable type inference
Compile time safety
Polymorphism
Working with collections & arrays
Working with traditional for loop
Working with for each loop
Working with Java streams
Working with anonymous class
Working with try-with-resources
JEP 296: consolidate the JDK forest into a single repository
JEP 304: Garbage collector interface
JEP 307: Parallel full GC for G1
JEP 310: Application class data sharing
JEP 313: Remove the native-header generation tool (javah)
JEP 314: Additional Unicode language-tag extensions
JEP 316: Heap allocation on alternate memory devices
JEP 317: experimental Java-based compiler
JEP 319: root certificates
JEP 322: time-based release versioning
API
System properties
Removed features and options
Deprecated features and options
Conclusion
Questions
4. Dive in JDK 11
Introduction
Structure
Objective
Downloading JDK11
JEP 181: nest-based access control
Change in the reflective access
JEP 309: Dynamic class-file constants
JEP 315: Improve Aarch64 intrinsic
JEP 318: Epsilon: no-op garbage collector
How to implement no-op GC
Allocation
Barriers
JEP 320: remove the Java EE and CORBA modules
JEP 321: HTTP client (standard)
JEP 323: local-variable syntax for lambda parameters
JEP 324: Key agreement with Curve25519 and Curve 448
API changes
JEP 327: Unicode 10
JEP 328: Flight recorder
JEP 329: ChaCha20 and Poly1305 cryptographic algorithms
JEP 330: Launch Single-File Source-Code Programs
Working with Shebang files
JDK 332: Transport Layer Security (TLS) 1.3
JEP 333: ZGC: scalable low-latency garbage collector (experimental)
Pointer colouring
Multimapping
Marking
Relocation
Enabling the ZGC
JEP 335: deprecate the Nashorn JavaScript Engine
Command line tool jjs
Working programmatically with Nashorn
JEP 336: deprecate the Pack200 tools and API
Conclusion
Questions
5. Migrating the Code
Introduction
Structure
Objective
Unnamed module
Jdeps tool
Override module configuration
--add-reads
--add-exports
--opens-add
Working with jLink
Multi-release JAR file
Conclusion
Questions
6. Working with JShell
Introduction
Structure
Objective
Launching JShell
Writing the code in JShell
Adding classpath to JShell
Forward references in method declaration
Working with commands in JShell
Editors
Internal Shell editing
Input text navigation
History navigation
Input modification
Searching
External editor
Feedback in JShell
Setting up the feedback:
Verbose feedback
Concise feedback
Normal feedback
Silent feedback
Customizing feedback mode
Conclusion
Questions
7. Reactive Programming and Concurrency Updates
Introduction
Structure
Objective
The reactive manifesto
Resilient
Responsive
Elastic
Message driven
Journey to be reactive
Pull and push model
Reactive streams
Reactive stream implementation for Java
RxJava
Reactor
Ratpack
Akka streams
Vert.x
Java9 reactive flow API
Publish-subscribe mechanism
Publisher
Subscriber
Subscription
The processor
Working of publisher-subscriber
Situation 1: normal publishing and subscription of items
Situation 2: cancellation of the items
Situation 3: Exception raised due to some reason
Working of publisher-processor-subscriber
Backpressure
Updates in concurrency
Conclusion
Questions
8. What’s New in Java12
Introduction
Structure
Objective
Downloading Java12
JEP 189: Shenandoah: A low-pause-time garbage collector
JEP 230: Microbenchmark suit
Microbenchmark concerns
Dead code
Constant folding
JEP 325: Switch expression
Change in expression label by using -> symbol
Multiple case labels
Returning values from switch
JEP 344: JVM Constant API
JEP 340: One AArch64 Port, not two
JEP 341: Default CDS archives
JEP 344: Abortable mixed collections for G1
JEP 346: Promptly return unused committed memory from G1
New features and enhancements
Removed features and options
Conclusion
Questions
9. Introduction to Java 13
Introduction
Structure
Objective
Downloading Java 13
JEP 350: Dynamic CDS archive
JEP 351:ZGC: uncommit unused memory
JEP 353: Reimplement the legacy socket API
JEP 354: Switch expressions (preview)
Yield statement in switch
JEP 355: Text blocks (preview)
Writing HTML
Writing SQL query string
Polyglot language example
Conclusion
Questions
Index
The book hasn't received reviews yet.