O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Functional Programming in Java 8

Video Description

In this Java 8 course for experienced programmers, Martin Kalin introduces constructs such as lambda expressions, method references, constructor references, and the Java Streams API. This is a code-driven course for the Java programmer who wants real hands-on experience working with functional programming.

You will gain a thorough understanding of why Java 8 was introduced, how functional programming works within data pipelines, and how this functional programming style promotes terse and simple to modify code, run-time efficiency, and thread safety. You will require access to a computer loaded with Java SE 8.

  • Learn to program using Java 8's new functional programming constructs
  • Discover how functional programming fits into the data pipeline model of computing
  • Become familiar with lambda expressions, method references, and constructor references
  • Understand how functional constructs work with the Java Streams API
  • Gain experience programming in Java 8 with multiple hands-on code centric exercises
Martin Kalin has a Ph.D. from Northwestern University and is a professor in the College of Computing and Digital Media at DePaul University. He enjoys commercial programming and has co-developed large distributed systems in process scheduling and product configuration. He is the author of multiple O'Reilly titles including Building Web Services with Java and Java Web Services: Up and Running.

Table of Contents

  1. Introduction
    1. Overview Of Functional Programming In Java 00:04:59
    2. About Me 00:01:26
    3. How To Access Your Working Files 00:01:15
  2. The Basics: Lambda Functions, Method References, And Constructor References
    1. Introduction To Lambdas: A First Code Example 00:05:59
    2. Lambda Exercise: What Will The Java Compiler Accept In The First Code Example? 00:03:38
    3. Lambda Exercise Assessment 00:04:59
    4. Lambdas As Arguments In Higher-Order Functions 00:05:15
    5. Cleaner Java Code Through Lambdas: An Event-Handling Example 00:04:47
    6. Cleaner Java Code Through Lambdas: A Sorting Example 00:05:20
    7. Wrapup Of Lambda Basics 00:05:07
    8. Method And Constructor References 00:08:43
    9. Wrapup Of Java's New 'Functional Programming' Constructs 00:06:21
  3. Functional Programming And The Streams API
    1. What Are Streams And Why Are They So Conducive To Functional Programming? 00:06:18
    2. Short Code Examples With Streams 00:06:56
    3. Code Examples To Reduce, Collect, And Group Streamed Data 00:06:54
    4. An Exercise Using The Treemap 00:07:17
    5. Assessment Of The Treemap Exercise 00:04:59
    6. Parallel Streams In Functional Programming 00:09:30
    7. Overview Of The Map/Reduce Programming Model 00:05:31
    8. A Map/Reduce Code Example 00:07:56
    9. Predicates And Streams 00:07:43
    10. Wrapup Of Functional Programming With Streams 00:05:11
    11. A Code Review Of Functional Programming With Streams 00:07:29
  4. Richer Code Examples
    1. Overview Of The Customer Application 00:04:30
    2. Analysis Of The Customer Application Code 1 00:06:39
    3. Analysis Of The Customer Application Code 2 00:07:01
    4. An Exercise Using Filters And Collectors 00:04:05
    5. Assessment Of The Filters/Collectors Exercise 00:06:10
    6. More On Functional Interfaces 00:04:18
    7. A Code Example For The Bifunction Interface 00:06:32
    8. The Supplier And Consumer Interfaces 00:05:07
    9. The Message Application: Suppliers, Consumers, And Object Factories 00:06:54
    10. Composing Functions: The Compose And Andthen Methods 00:05:09
    11. Wrapup Of Functional Interfaces 00:04:43
  5. Selected Advanced Features
    1. Is A Java Lambda A 'Closure'? 00:08:13
    2. A Code Example For Lambdas As Closures 00:05:02
    3. Currying With Lambdas 00:07:21
    4. Imperative And Functional Programming Styles 00:06:27
    5. A Code Example To Contrast Imperative And Functional Programming 00:09:00
  6. Conclusion
    1. Wrapup 00:03:17