Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Title Page Copyright
Mastering Java 9
Credits About the Authors About the Reviewer www.PacktPub.com
Why subscribe?
Customer Feedback Preface
What this book covers What you need for this book Who this book is for Conventions Reader feedback Customer support
Downloading the example code Errata Piracy Questions
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
Discovering Java 9
Improved Contended Locking [JEP 143]
Improvement goals
Segmented code cache [JEP 197]
Memory allocation
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]
The problem The solution
Preparing JavaFX UI controls and CSS APIs for modularization [JEP 253]
JavaFX overview Implications for Java 9
Compact strings [JEP 254]
Pre-Java 9 status New with Java 9
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]
New in Unicode 8.0.0 Updated Classes in Java 9
Reserved stack areas for critical sections [JEP 270]
The pre-Java 9 situation New in Java 9
Dynamic linking of language-defined object models [JEP 276]
Proof of concept
Additional tests for humongous objects in G1 [JEP 278] Improving test-failure troubleshooting [JEP 279]
Environmental information Java process information
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
Working with variable handlers [JEP 193]
Working with the AtoMiC Toolkit Using the sun.misc.Unsafe class
Eliding depreciation warnings on import statements [JEP 211] Milling Project Coin [JEP 213]
Using the @SafeVarargs annotation The try-with-resource statement Using the diamond operator Discontinuing use of the underscore Making use of private interface methods
Processing import statements correctly [JEP 216] Summary
Building Modular Applications with Java 9
A modular primer Reviewing Java's platform module system [JEP-200] Modularizing JDK source code [JEP-201]
Pre-Java 9 JDK source code organization
Development tools
Deployment Internationalization Monitoring RMI Security Troubleshooting Web services
JavaFX tools Java runtime environment Source code Libraries C header files Database
JDK source code reorganized
Understanding modular run-time images [JEP-220]
Runtime format adoption Runtime image restructure Supporting common operations De-privileging JDK classes Preserving existing behaviors
Getting to know the module system [JEP-261]
Module paths Access-control boundary violations
Runtime
Modular Java application packaging [JEP-275]
Advanced look at the Java Linker Java Packager options
JLink - The Java Linker [JEP-282] Encapsulating most internal APIs [JEP-260] Summary
Migrating Applications to Java 9
Quick review of Project Jigsaw
Classpath The monolithic nature of the JDK
How modules fit into the Java landscape
Base module Reliable configuration Strong encapsulation
Migration planning
Testing a simple Java application Potential migration issues
The JRE Access to internal APIs Accessing internal JARs JAR URL depreciation Extension mechanism The JDK's modularization
Advice from Oracle
Preparatory steps
Getting the JDK 9 early access build Running your program before recompiling Updating third-party libraries and tools Compiling your application
Pre-Java 9 -source and -target options Java 9 -source and -target options
Running jdeps on your code
Breaking encapsulation
The --add-opens option The --add-exports option The --permit-illegal-access option
Runtime image changes
Java version schema JDK and JRE layout
What has been removed Updated garbage collection Deployment
JRE version selection Serialized applets JNLP update
Nested resources FX XML extension JNLP file syntax Numeric version comparison
Useful tools
Java environment - jEnv Maven
Obtaining the M2Eclipse IDE
Summary
Experimenting with the Java Shell
What is JShell? Getting Started with JShell Practical uses of JShell
Feedback modes
Creating a custom feedback mode
Listing your assets Editing in the JShell
Modifying text Basic navigation Historical navigation Advanced editing commands
Working with scripts
Start up scripts Loading scripts Saving scripts Advanced scripting with JShell
Summary
Leveraging the New Default G1 Garbage Collector
Overview of garbage collection
Object life cycle
Object creation Object mid-life Object destruction
Garbage collection algorithms
Mark and sweep Concurrent mark sweep (CMS) garbage collection Serial garbage collection Parallel garbage collection G1 garbage collection
Garbage collection options Java methods relevant to garbage collection
The System.gc() method The finalize() method
Pre-Java 9 garbage collection
Visualizing garbage collection Garbage collection upgrades in Java 8 Case study - Games written with Java
Collecting garbage with the new Java platform
Default garbage collection Depreciated garbage collection combinations Unified garbage collection logging
Unified JVM logging (JEP-158)
Tags Levels Decorations Output Command-line options
Unified GC logging (JEP-271)
Garbage collection logging options The gc tag Macros Additional considerations
Persistent issues
Making objects eligible for garbage collection
Summary
Microbenchmarking Applications with JMH
Microbenchmarking overview
Approach to using JMH
Installing Java 9 and Eclipse with Java 9 support Hands-on experiment
Microbenchmarking with Maven Benchmarking options
Modes Time units
Techniques for avoiding microbenchmarking pitfalls
Power management OS schedulers Time sharing Eliminating dead-code and constant folding Run-to-run variance Cache capacity
Summary
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
Listing children Listing descendants Listing all processes
Waiting for processes Terminating processes A small process controller application
Main class Parameters class The ParamsAndHandle class The ControlDaemon class
Summary
Fine-Grained Stack Tracing
Overview of the Java Stack The importance of stack information
Example - Restricting callers Example - Getting logger for caller
Working with StackWalker
Getting an instance of StackWalker
RETAIN_CLASS_REFERENCE SHOW_REFLECT_FRAMES SHOW_HIDDEN_FRAMES Final thoughts on enum constants
Accessing classes Walking methods
StackFrame Performance Summary
New Tools and Tool Enhancements
The new HTTP client [JEP-110]
The HTTP client before Java 9 Java 9's new HTTP client New API limitations
Simplified Doclet API [JEP-221]
The pre-Java 9 Doclet API
API enums API classes API interfaces Problems with the pre-existing Doclet API
Java 9's Doclet API
Compiler tree API Language model API
The AnnotatedConstruct interface The SourceVersion enum The UnknownEntityException exception
HTML5 Javadoc [JEP-224] Javadoc search [JEP-225]
Introducing camel case search
Remove launch-time JRE version selection [JEP-231] Parser API for Nashorn [JEP-236]
Nashorn
Using Nashorn as a command-line tool Using Nashorn as an embedded interpreter
EMCAScript Parser API
Multi-release JAR files [JEP-238]
Identifying multi-release JAR files Related JDK changes
Java-level JVM compiler interface [JEP-243] BeanInfo annotations [JEP-256]
JavaBean BeanProperty SwingContainer BeanInfo classes
TIFF image input/output [JEP-262] Platform logging API and service [JEP-264]
The java.util.logging package Logging in Java 9
XML Catalogs [JEP-268]
The OASIS XML Catalog standard JAXP processors XML Catalogs prior to Java 9 Java 9 platform changes
Convenience factory methods for collections [JEP-269]
Using collections before Java 9 Using new collection literals
Platform-specific desktop features [JEP-272] Enhanced method handles [JEP-274]
Reason for the enhancement Lookup functions Argument handling Additional combinations
Enhanced deprecation [JEP-277]
What the @Deprecated annotation really means
Summary
Concurrency and Reactive Programming
Reactive Programming
Reactive programming standardization
The New Flow API
The Flow.Publisher interface The Flow.Subscriber interface The Flow.Subscription interface The Flow.Processor interface Sample implementation
Additional Concurrency Updates
Java concurrency
Concurrency explained System configurations Java threads Concurrency improvements
CompletableFuture API enhancements
Class details Enhancements
Spin-Wait Hints Summary
Security Enhancements
Datagram Transport Layer Security
DTLS protocol version 1.0 DTLS protocol version 1.2 DTLS support in Java 9
Creating PKCS12 keystores
Keystore primer Java Keystore (JKS)
Builder The CallbackHandlerProtection class The PasswordProtection class The PrivateKeyEntry class The SecretKeyEntry class The TrustedCertificateEntry class
PKCS12 default in Java 9
Improving security application performance
Security policy enforcement Permission evaluation The java.Security.CodeSource package Package checking algorithm
TLS application-layer protocol negotiation extension
TLS ALPN extension The javax.net.ssl package The java.net.ssl package extension
Leveraging CPU instructions for GHASH and RSA
Hashing
OCSP stapling for TLS
OCSP stapling primer Changes for the Java 9 platform
DRBG-based SecureRandom implementations Summary
Command Line Flags
Unified JVM Logging [JEP 158]
Command-line options Decorations Levels Output Tags
Compiler control [JEP 165]
Compilation modes
C1 compilation mode C2 compilation mode Tiered compilation
Compiler control in Java 9
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
Best Practices In Java 9
Support for UTF-8
The ResourceBundle class
The nested class Fields and constructors Methods
Changes in Java 9
Unicode 7.0.0
The java.lang package The java.text package Additional significance
The Linux/AArch64 port Multi-resolution Images Common Locale Data Repository (CLDR) Summary
Future Directions
Future Changes to the JDK
JDK changes targeted for Java 10
Repository consolidation Native-header tool removal
JDK-related submitted proposals
Parallelize the Full GC Phase in CMS REST APIs for JMX Support heap allocation
JDK-related drafted proposals
Finalization promptness Java memory model Foreign Function Interfaces Isolated methods Reducing metaspace waste Improving IPv6 support Unboxed argument lists for method handles Enhanced MandelblotSet demo using value types Efficient array comparison intrinsics
Future changes to the Java Compiler
Policy for retiring javac -source and -target options Pluggable static analyzers
Future Changes to the Java Virtual Machine
JVM-related submitted proposals
Container aware Java Enable execution of Java methods on GPU Epsilon GC - The arbitrarily low overhead garbage (non-) collector
JVM-related drafted proposals
Provide stable USDT probe points on JVM compiled methods Concurrent monitor deflation Provide a low-overhead way of sampling Java heap allocations Diagnostic Command Framework Enhanced Class Redefinition Enable NUMA mode by default when appropriate Value objects Align JVM Access Checks
Future Changes to JavaX
JMX specific annotations for registration of managed resources Modernize the GTK3 Look and Feel Implementation
Ongoing Special Projects
Annotations pipeline 2.0 Audio Synthesis Engine Caciocavallo Common VM Interface Compiler Grammar Da Vinci Machine Device I/O Graal HarfBuzz Integration Kona OpenJFX Panama Shenandoah
Summary
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion