Java 8 in Action: Lambdas, Streams, and Functional-Style Programming

Fundamentals
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Java 8: why should you care?
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Passing code with behavior parameterization
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Lambda expressions
Functional-style data processing
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Introducing streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Working with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Collecting data with streams
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Parallel data processing and performance
Effective Java 8 programming
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Refactoring, testing, and debugging
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Default methods
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
Using Optional as a better alternative to null
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
CompletableFuture: composable asynchronous programming
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
New Date and Time API
Beyond Java 8
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Thinking functionally
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Functional programming techniques
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Blending OOP and FP: comparing Java 8 and Scala
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Conclusions and where next for Java
Miscellaneous language updates
Miscellaneous language updates
Miscellaneous language updates
Miscellaneous language updates
Miscellaneous language updates
Miscellaneous library updates
Miscellaneous library updates
Miscellaneous library updates
Miscellaneous library updates
Miscellaneous library updates
Miscellaneous library updates
Miscellaneous library updates
Miscellaneous library updates
Miscellaneous library updates
Miscellaneous library updates
Performing multiple operations in parallel on a stream
Performing multiple operations in parallel on a stream
Performing multiple operations in parallel on a stream
Performing multiple operations in parallel on a stream
Performing multiple operations in parallel on a stream
Performing multiple operations in parallel on a stream
Performing multiple operations in parallel on a stream
Performing multiple operations in parallel on a stream
Performing multiple operations in parallel on a stream
Performing multiple operations in parallel on a stream
Performing multiple operations in parallel on a stream
Lambdas and JVM bytecode
Lambdas and JVM bytecode
Lambdas and JVM bytecode
Lambdas and JVM bytecode
Lambdas and JVM bytecode
Lambdas and JVM bytecode