You are on page 1of 2

JAVA 8 IN ACTION

ABOUT THE BOOK


Every new version of Java is important,
but Java 8 is a game changer. Java 8 in
Action is a clearly written guide to the new
features of Java 8. It begins with a practical
introduction to lambdas, using real-world
Java code. Next, it covers the new Streams
API and shows how you can use it to make
collection-based code radically easier to
understand and maintain. It also explains
other major Java 8 features including default
methods, Optional, CompletableFuture, and
the new Date and Time API.

FEATURES

` 549/-

Authors: Raoul-Gabriel Urma,

ISBN: 9789351197430 Pages: 424 Mario Fusco, and Alan Mycroft

How to use Java 8s powerful new


features
Writing effective multicore-ready
applications
Refactoring, testing, and debugging
Adopting functional-style
programming
Quizzes and quick-check questions

SUMMARY
Java 8 in Action is a clearly written guide to the new features of Java 8. The book covers lambdas, streams,
and functional-style programming. With Java 8s functional features you can now write more concise code in
less time, and also automatically benefit from multicore architectures. Its time to dig in!

ABOUT THE AUTHORS


Raoul-Gabriel Urma is a software engineer, speaker, trainer, and PhD candidate
at the University of Cambridge. Mario Fusco is an engineer at Red Hat and
creator of the lambdaj library. Alan Mycroft is a professor at Cambridge and
cofounder of the Raspberry Pi Foundation.
/dtechpress

/dtechpress

/dreamtechpress

dreamtechpress.wordpress.com

/company/dreamtech-press

TABLE OF CONTENTS
PART 1 FUNDAMENTALS

PART 3 EFFECTIVE JAVA 8 PROGRAMMING

1 Java 8: Why should you Care?


yy Why is Java still changing?
yy Functions in Java
yy Streams
yy Default methods
yy Other good ideas from functional programming
2 Passing code with Behavior Parameterization
yy Coping with changing requirements
yy Behavior parameterization
yy Tackling verbosity
yy Real-world examples
3 Lambda Expressions
yy Lambdas in a nutshell
yy Where and how to use lambdas
yy Putting lambdas into practice: the execute around pattern
yy Using functional interfaces
yy Type checking, type inference, and restrictions
yy Method references
yy Putting lambdas and method references into practice!
yy Useful methods to compose lambda expressions
yy Similar ideas from mathematics

8 Refactoring, Testing, and Debugging


yy Refactoring for improved readability and flexibility
yy Refactoring object-oriented design patterns with lambdas
yy Testing lambdas
yy Debugging

PART 2 FUNCTIONAL-STYLE DATA PROCESSING


4 Introducing streams
yy What are streams?
yy Getting started with streams
yy Streams vs. collections
yy Stream operations
yy Summary
5 Working with Streams
yy Filtering and slicing
yy Mapping
yy Finding and matching
yy Reducing
yy Putting it all into practice
yy Numeric streams
yy Building streams
6 Collecting Data with Streams
yy Collectors in a nutshell
yy Reducing and summarizing
yy Grouping
yy Partitioning
yy The Collector interface
yy Developing your own collector for better performance
7 Parallel Data Processing and Performance
yy Parallel streams
yy The fork/join framework
yy Spliterator
Published by:

/dtechpress

9 Default Methods
yy Evolving APIs
yy Default methods in a nutshell
yy Usage patterns for default methods
yy Resolution rules
10 Using Optional as a Better Alternative to Null
yy How do you model the absence of a value?
yy Introducing the Optional class
yy Patterns for adopting Optional
yy Practical examples of using Optional
11 Completable Future: Composable Asynchronous Programming
yy Futures
yy Implementing an asynchronous API
yy Make your code non-blocking
yy Pipelining asynchronous tasks
yy Reacting to a CompletableFuture completion
12 New Date and Time API
yy LocalDate, LocalTime, Instant, Duration, and Period
yy Manipulating, parsing, and formatting dates
yy Working with different time zones and calendars

PART 4 BEYOND JAVA


13 Thinking Functionally
yy Implementing and maintaining systems
yy Whats functional programming?
yy Recursion vs. iteration
14 Functional Programming Techniques
yy Functions everywhere
yy Persistent data structures
yy Lazy evaluation with streams
yy Pattern matching
yy Miscellany
15 Blending OOP and FP: Comparing Java 8 and Scala
yy Introduction to Scala
yy Functions
yy Classes and traits
16 Conclusions and where Next for Java
yy Review of Java 8 features
yy Whats ahead for Java?

DREAMTECH PRESS
WILEY INDIA PVT. LTD.
19-A, Ansari Road, Daryaganj
4435-36/7, Ansari Road, Daryaganj
New Delhi-110 002, INDIA
New Delhi-110 002, INDIA
Tel: +91-11-2324 3463-73, Fax: +91-11-2324 3078
Tel: +91-11-4363 0000, Fax: +91-11-2327 5895
Email: feedback@dreamtechpress.com
Email: csupport@wiley.com
Website: www.dreamtechpress.com
Website: www.wileyindia.com
Regional Offices: Bangalore: Tel: +91-80-2313 2383, Fax: +91-80-2312 4319, Email: blrsales@wiley.com
Mumbai: Tel: +91-22-2788 9263, 2788 9272, Telefax: +91-22-2788 9263, Email: mumsales@wiley.com
/dtechpress

/dreamtechpress

dreamtechpress.wordpress.com

Execlusively
Distributed by:

/company/dreamtech-press

You might also like