Programming in Java 8

Java Functional Programming Programming languages

Java is arguably one of the most widely used languages. This popular language is going through a makeover. This will have a significant impact on how programmers will code and design applications with Java. With the introduction of lambda expressions and method references in Java 8, we can now make use of functional style of programming. With greater emphasis on immutability and state transformation instead of state mutation, this means fewer errors, more expressive and concise code that's easier to parallelize. All this comes with one caveat, we have to learn and adapt to not just the new syntax, but different and better way of thinking.

This course is designed, by author of the first book on Java 8 to hit the market, to help you make a quick and effective transition to Java 8 and its functional capabilities.

The Next Big Thing in Java

  • The evolution of Java
  • Major changes in the language
  • What's in it for you?Exercises

Starting with Lambda Expressions

  • What are Lambda Expressions?
  • Why change the way we think and code?
  • The paradigm shift
  • Benefits of the paradigm shift
  • Adapting the functional style of programming
  • Exercises

Thinking in Functional Style

  • From imperative to functional style
  • Change to everyday tasks
  • Reading files and listing directories
  • Iterating Strings
  • Discovering declarative style
  • Programming with immutability
  • Evolving code in functional style
  • Exercises

Using Method References

  • Making the code concise and expressive
  • When and how to use method references
  • Dealing with ambiguity
  • Exploring the Comparators
  • Using fluent comparisons
  • Exercises

Working with Collections

  • Iterating lists
  • Transforming lists
  • Finding elements in a list
  • Map and reduce operations on list
  • Joining values
  • Exercises

Design Patterns in Functional Style

  • Change to common OO patterns when adapting functional style
  • Patterns native to functional style
  • Designing with lambda expressions
  • Using default methods
  • Creating fluent interfaces
  • Exercises

Function Composition

  • Composing with functions
  • Expressing problems using function composition
  • Performance concerns
  • Lazy evaluation
  • Intermediate and terminal operations
  • Programming with lazy collections
  • Exercises

Exploiting Concurrency

  • Concurrency as a master switch
  • Turning operations into concurrent operations
  • Words of caution
  • Designing to exploit concurrency
  • Exercises

Tid

09:00 - 16:15

Emner

The Next Big Thing in Java

Starting with Lambda Expressions

Thinking in Functional Style

Using Method References

Working with Collections

Design Patterns in Functional Style

Function Composition

Exploiting Concurrency