Java 8 in Action: Lambdas, Streams, and functional-style programming
DATE: Thursday the 26th of March.
Java 8 has been the most revolutionary Java release. It not only introduced lambdas making Java an hybrid object oriented and functional language, but also enriched its API with extremely useful classes like Stream and CompletableFuture. This WS will explain all these news with practical examples.
LANGUAGE
Italian
LEVEL
Medium
DURATION
The workshop is half-day (4 hours) from 14:00 to 18:00.
LOCATION
c/o Polo Didattico | Piazza Oderico da Pordenone -00145- Roma
CHECK IN: 13.30 – 14.00
PRICES:
Super Early Bird: 75 €,from the 28 th of January to the 17 th of February;
Early Bird: 90 €,from the 18 th of February to the 4 th of March;
Full: 105 €, from the 5th March to the end of the sales.
MARIO FUSCO
Mario is a senior software engineer at Red Hat working at the development of the core of JBoss rule engine. He has a huge experience as Java developer having been involved in (and often leading) many enterprise level projects in several industries. Among his interests there are also functional programming and Domain Specific Languages. By leveraging these 2 passions he created the open source library lambdaj with the purposes of providing an internal Java DSL for manipulating collections and allowing a bit of functional programming in Java. He is also the co-author of “Java 8 in Action”.
ABSTRACT
Lambda expressions are for sure the most important change made to Java 8. They are not only a new feature, but implies a paradigm shift toward a more functional style of programming. For this reason Java developers not only have to learn their syntax, but most important how to use them effectively. Their expressiveness also allowed to enrich Java API in many areas as collections manipulation with the new Stream class and parallel programming thank to the new CompletableFuture. The WS will show how to leverage the power of Java 8 with many practical examples developed in a live coding session.
TABLE OF CONTENTS
– Functional programming principles and patterns
– Java 8 lambdas syntax
– Method references
– Default methods
– Functional-style data processing with Streams
– External vs. Internal iteration
– Aggregating data with Collectors
– Parallel data manipulation
– Persistent collections
– Using Optional as a better alternative to null
– Composable asynchrnous programming with CompletableFuture
– Examples of code refactoring applying functional patterns
TRAINING OBJECTIVES
The Workshop attendees will learn:
– the syntax and mechanics of Java 8 lambda expression
– the basic principles and patterns of functional programming and how to implement them in Java 8
– what default methods are and why they make easier to extend an existing API without breaking its backward compatibility
– how to manipulate collections with lambda expression and in particular using the new Stream class
– what it means that Streams are lazy and more in general which are the advantages of laziness
– the difference between external and internal iteration
– the new Optional class and why it is a better alternative to use null references for modelling missing or absent values
– the advantages of functional programming in general and immutability in particular when developing parallel or concurrent applications
– the new CompletableFuture class and why it makes easier to create asynchronous and non-blocking API
WHO THE WORKSHOP IS DEDICATED TO?
The workshop is dedicated to all Java developers who wants to learn the many news introduced with the 8th release of the language.
PREREQUISITES NEEDED FROM ATTENDEES
Knowledge of Java 5 or higher is required. In particular a good understanding of Java generics will be very beneficial.
HARDWARE AND SOFTWARE REQUIREMENTS
Participants are required to bring their own laptop.
The workshop will be held only if the minimun number of attendees is reached