Share E-Book
Scan to open this page

Scan with your phone to open this page

Author: Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft

Rating No ratings yet

Summary Manning's bestselling Java 8 book has been revised for Java 9! In Modern Java in Action, you'll build on your existing Java language skills with the newest features and techniques. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Modern applications take advantage of innovative designs, including microservices, reactive architectures, and streaming data. Modern Java features like lambdas, streams, and the long-awaited Java Module System make implementing these designs significantly easier. It's time to upgrade your skills and meet these challenges head on! About the Book Modern Java in Action connects new features of the Java language with their practical applications. Using crystal-clear examples and careful attention to detail, this book respects your time. It will help you expand your existing knowledge of core Java as you master modern additions like the Streams API and the Java Module System, explore new approaches to concurrency, and learn how functional concepts can help you write code that's easier to read and maintain. What's inside Thoroughly revised edition of Manning's bestselling Java 8 in Action New features in Java 8, Java 9, and beyond Streaming data and reactive programming The Java Module System About the Reader Written for developers familiar with core Java features. About the Author Raoul-Gabriel Urma is CEO of Cambridge Spark. Mario Fusco is a senior software engineer at Red Hat. Alan Mycroft is a University of Cambridge computer science professor; he cofounded the Raspberry Pi Foundation. Table of Contents PART 1 - FUNDAMENTALS Java 8, 9, 10, and 11: what's happening? Passing code with behavior parameterization Lambda expressions PART 2 - FUNCTIONAL-STYLE DATA PROCESSING WITH STREAMS Introducing streams Working with streams Collecting data with streams Parallel data processing and performance PART 3 - EFFECTIVE PROGRAMMING WITH STREAMS AND LAMBDAS Collectio

AI Reading Assistant

Whole-book reading guide from stratified index samples; jump to passages in the text

AI guide
【One-Line Pitch】 A practical, example-driven guide to writing modern Java with lambdas, the Streams API, and functional-style design. Best for developers who already know core Java and want to move beyond loops and anonymous classes toward clearer, more maintainable, and more parallel-friendly code. 【Book Arc】 - **Opening (~0%–10%)**: Sets the stage by surveying what Java 8, 9, 10, and 11 changed and why those changes matter for multicore, streaming, and maintainable code. - **Early (~10%–35%)**: Builds the foundation of functional Java: behavior parameterization, lambda expressions, functional interfaces, method and constructor references, and the target-typing rules that make them work. - **Middle (~35%–55%)**: Introduces streams as internal iteration, then develops filtering, mapping, flatMap, matching, finding, reducing, and numeric stream handling through concrete menu/transaction examples. - **Late (~55%–80%)**: Moves into effective stream practice: collectors, grouping and partitioning, parallel data processing and performance, and the default methods that make library evolution possible. - **Ending (~80%–100%)**: Extends beyond Java 8 into newer language and platform features, including the Java Module System, concurrency alternatives, and reactive/streaming approaches. The excerpts do not cover the final chapters in detail. 【Key Takeaways】 - **Behavior parameterization is the conceptual hinge of the book** (Early): it explains why passing code as data replaces duplicated filtering methods and sets up lambdas as the practical syntax for that idea. - **Lambdas are only meaningful in the context of a functional interface** (Early): the book stresses target typing and function descriptors, so you learn not just syntax but how the compiler decides whether a lambda is valid. - **Method and constructor references are concise reuse tools** (Early): `ClassName::new` and existing method references let you pass implementations without rewriting them, which matters for clean API design. - **Streams replace external iteration with internal iteration** (Middle): instead of managing loops yourself, you declare what should happen—filter, map, limit, collect—and the library handles traversal. - **flatMap is the key operation for flattening nested structures** (Middle): the book’s pair-generation examples show how to avoid `Stream<Stream<...>>` and produce a single useful stream. - **Collectors turn stream pipelines into practical results** (Late): grouping, partitioning, and collecting by currency or category show how streams connect to real reporting and data-shaping tasks. - **Parallelism is a design decision, not a free speedup** (Late): the book connects streams to multicore processing and performance, warning that parallel data processing needs care. - **Modern Java extends beyond Java 8** (Ending): the module system, newer concurrency approaches, and reactive/streaming ideas are presented as the next step after mastering lambdas and streams. 【Reading Tips】 - Deep-read the early lambda and functional-interface chapters; they are the vocabulary for everything later. - Skim the opening Java-version survey if you already know Java 8 history, but return to it for the “why” behind parallelism and conciseness. - Work through the stream examples actively—especially flatMap, matching, and collectors—because the book teaches by incremental code transformation. - Treat the later module-system and reactive material as orientation; use it to decide which topics deserve a dedicated follow-up. - Keep a mental checklist of when to use streams versus collections, and when parallel streams are worth the risk. 【Coverage Limits】 This guide is based on stratified excerpts covering roughly the first half to two-thirds of the book, with the strongest detail on lambdas, functional interfaces, and stream operations. The later chapters on modules, concurrency, and reactive programming are only lightly represented, so specifics there are not fully covered.
Excerpt 1
RT 1 - FUNDAMENTALS Java 8, 9, 10, and 11: what's happening? Passing code with behavior parameterization Lambda expressions PART 2 - FUNCTIONAL-STYLE DATA PR...
View in text
Excerpt 2
arly, many companies use computing clusters (computers con- nected together with fast networks) to be able to process vast amounts of data efficiently. Java...
View in text
Excerpt 3
discussion about functional interfaces and lambdas, table 3.3 pro- vides a summary of use cases, examples of lambdas, and functional interfaces that can be u...
View in text
Excerpt 4
predicate?” For example, you can use it to find out whether the menu has a vegetarian option: 118 CHAPTER 5 Working with streamsTrader and Transaction are cl...
View in text
Excerpt 5
n the former examples. You could also use a third Collector in combination with the groupingBy to perform a flatMap transformation instead of a plain map. To...
View in text
Excerpt 6
have to wait for the other one to complete before starting. The invoke method of a ForkJoinPool shouldn’t be used from within a RecursiveTask. Instead, you s...
View in text
Excerpt 7
ituation can be problematic. Suppose that you’ve declared a functional interface with the same signature as Runnable, here called Task (as might occur when y...
View in text
Excerpt 8
.setType(buy); trade.setStock(stock); trade.setPrice(price); return trade; } A dummy method to define the unit price public static double at(double price) {...
View in text
Tags
AI categories
JavaProgramming LanguageSoftware
ISBN: 1617293563
Publish Year: 2018
Language: English
Pages: 592
File Format: PDF
File Size: 8.3 MB
Text Preview (First 20 pages)
Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

Generating text preview…