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
  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

Product Information

  • Title: Functional Programming in Java 8
  • Author(s): Martin Kalin
  • Release date: July 2016
  • Publisher(s): Infinite Skills
  • ISBN: 9781491969731