About This Title

Pages: 250
Published: January 2025
ISBN: 9781680509816
In Beta

Skill Level Meter

Cruising Along with Java

Modernize and Modularize with the Latest Features

by Venkat Subramaniam

Java is on a fast-paced development schedule that brings with it improved design capabilities and enhancements for application security. Learn about the changes to Java, from version 9 to 19, and apply new features to build enterprise applications faster and with fewer errors. Get up to speed on how to make your code concise, expressive, and less error prone, and create better OO programs with the newest features. Modularize and create asynchronous applications with ease and proper error handling. This book contains twelve chapters that dive deep into the features, using plenty of examples for you to practice along with.

eBook Formats:

  • PDF for desktop/tablets

  • epub for Apple Books, e-readers

  • mobi for Kindle readers

Get all eBook formats here for $26.95 (USD)

Add to Cart we accept visa, mastercard, amex, discover, paypal

This book is in Beta, final version expected Jan 2025

Beta Books: What do I get?


Java is changing quickly—don’t be left behind. This book will keep you up to date on the amazing capabilities of the Java language introduced between versions 9 and 19. Whether you are using Java 8 or one of the newer versions of Java, this book will serve as your practical guide to explore and apply the features in these versions of Java.

Learn to properly use type inference and avoid its pitfalls. Use text blocks to write elegant multiline strings and embed XML and JSON documents in code. Design better OO code with records and sealed classes, and along the way, learn proper ways to apply these new ideas. Reduce verbosity and hidden errors in code using switch expressions and pattern matching syntax. Take your upgrade journey further by modularizing your Java code, to make it more secure and manage dependencies clearly. Leverage those capabilities to more easily and dynamically discover services. Learn to create highly performant and resilient asynchronous applications, using the brand new virtual threads (fibers) and structured concurrency.

Don’t tolerate clumsy old Java code; instead, benefit from the significant changes to the language in versions 9 through 19.

What You Need

To make use of all the features in this book, you’ll need at least Java 19.

Resources

Releases:

  • B5.0 2024/11/08
  • B4.0 2024/03/12
  • B3.0 2023/11/28
  • B2.0 2023/07/13

Contents & Extracts

Note: Contents and extracts of beta books will change as the book is developed.

Preface

  • The Evolution of Java excerpt
  • Syntax Sugar
    • Using Type Inference
      • Type Inference and Java
      • Generics and Type Witness
      • Diamond Operator Enhancements
      • Lambda Expressions Parameters Type Inference
      • Local Variable Type Inference
      • Using Type Inference with for and try
      • var: Not a Type nor a Keyword
      • Targeted Intersection Types
      • Extent of Type Inference
      • Mind the Inference
      • Wrapping Up
    • Reducing Clutter with Text Blocks excerpt
      • From Noisy to Nice
      • Embedding Strings
      • Smart Indentations
      • Trailing Spaces and Special Escapes
      • Creating XML Documents Using Text Blocks
      • Creating JSON Output Using Text Blocks
      • Wrapping Up
  • Design Aid
    • Programming with Records
      • From Verbose to Succinct
      • Components, Fields, Getters, and Metadata
      • Extent of Immutability
      • Built-in Methods
      • Implementing Interfaces
      • Restrictions for the Greater Good
      • Considering a Custom Canonical Constructor?
      • Preferring the Compact Constructor
      • Creating a Custom Non-Canonical Constructor
      • (Local) Records as Tuples
      • Wrapping Up
    • Designing with Sealed Classes and Interfaces
      • Need For a Closed Hierarchy
      • Using sealed
      • Sealed Related Metadata
      • Using the permits Clause
      • Constraints On the Subclasses
      • Wrapping Up
  • Fluent Expressions
    • Switching to Switch Expression excerpt
      • From Statements to Expressions
      • Using Multiple Labels in a Case
      • Cases with Non-Expressions
      • Completeness of a switch Expression
      • Wrapping Up
    • Using Powerful Pattern Matching
      • Pattern Matching with instanceof
      • Using Type Matching
      • Matching null
      • Guarded Patterns
      • Dominance Check
      • Completeness Check
      • Completeness Check and Sealed Classes/Interfaces
      • Deciding to Use default or Not
      • Destructuring Records when Pattern Matching
      • Type Inference with Destructuring Records
      • Unnamed Variables in Pattern Matching
      • Wrapping Up
  • Modularization
    • Modularizing Your Java Applications
      • Maven, Gradle, and Modularization
      • Modules and the Benefits of Modularization
      • Modularized Java
      • Starting with a Legacy Application
      • Perils of the Existing Design
      • Modularizing the Space Station Application
      • Architectural Constraints Promoted by Modules
      • Wrapping Up
    • Working with Modules
      • Exploring the Module Metadata
      • Managing Transitive Dependencies
      • Targeted Linking Using jlink
      • Wrapping Up
    • Creating Plug-ins with ServiceLoader
      • The Plug-in Architecture
      • Defining a Specification Module
      • Creating a Client Module
      • Implementing A Plug-in
      • Implementing Additional Plug-ins
      • Reloading the Implementations
      • Functional Style Iteration
      • Wrapping Up
  • Custom Functional Pipeline Steps
    • Extending Functional Pipelines with Gatherers
      • Why Do We Need Gatherers?
      • Creating Custom Steps Using the gather() Method
      • Using Built-in Gatherers
      • Wrapping Up
    • Creating Custom Gatherers
      • The Machinery Behind the gather() Method
      • Flavors of Gatherers
      • Creating Sequential Stateless Gatherers
      • Creating Sequential Stateful Gatherers
      • Creating Parallel Stateless Gatherers
      • Creating Parallel Stateful Gatherers
      • Wrapping Up

Author

Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is regularly invited to speak at international conferences. He’s the (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer.

eBook Formats:

  • PDF for desktop/tablets

  • epub for Apple Books, e-readers

  • mobi for Kindle readers

Get all eBook formats here for $26.95 (USD)

Add to Cart we accept visa, mastercard, amex, discover, paypal

This book is in Beta, final version expected Jan 2025

Beta Books: What do I get?

Related Titles:

Skill Level Meter

About This Title

Pages: 250
Published: January 2025
ISBN: 9781680509816
Edition: 1
In Beta