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 |