Study Learn Grow
Functional Programming With Streams In Java 9

Functional Programming With Streams In Java 9


Improve your Java 9 programs using functional techniques.

Overview

Improve your Java 9 programs using functional techniques.

Java 8 introduced a wealth of new features, pushing Java towards the so-called functional programming paradigm. Benefits from this shift include succinctness and ease in developing robust, multi-threaded applications. In this course, we introduce the key functional features of Java 8 and 9, and explain how they can be used to write code that is more expressive and amenable to parallelization. Specifically, we will first discuss lambda functions and functional interfaces. Using these features, programmers can easily create objects that offer a single specific service, similar to anonymous classes. We will also explore the predefined functional interfaces that can be found in the Java API, starting with well-known, pre-existing ones such as Comparator and Runnable. Reaping the full benefits of lambda functions requires employing them with streams, a new kind of collection with built-in parallelization support. We will examine the relationship between streams and collections, and how the latter have changed as a result of the new language features. Finally, after having mastered the key features of streams, we will explore the details of parallel execution, such as the crucial notion of side-effects and the fork-join execution model.

About the Author

Marco Faella is a professor of Computer Science at the University of Naples "Federico II", Italy. He has taught classes on Java programming, compiler construction, and software engineering to undergraduate and graduate students since 2005. He is the author of over 50 scientific publications in international conferences and journals. He has also developed scientific software in C++, OCaml, Python, and Java. Marco is fluent in C, C++, OCaml, Python, and Java and has contributed to the Parma Polyhedra Library, a well-known scientific library for the symbolic manipulation of polyhedra. He has extensive teaching experience in related topics, specifically a course on advanced Java programming with generics, collections, and multi-threading, which he has been teaching for the last 10 years (Linguaggi di Programmazione 2). He’s also writing 4 chapters of an upcoming book (in Italian) on Oracle OCP Java certification. Marco is fluent in C, C++, OCaml, Python, and Java and has contributed to the Parma Polyhedra Library, a well-known scientific library for symbolic manipulation of polyhedra. He has an extensive teaching experience in related topics, specifically a course on advanced Java programming with generics, collections, and multi-threading, which he has been teaching for the last 10 years (Linguaggi di Programmazione 2). He’s also writing 4 chapters of an upcoming book (in Italian) on Oracle OCP Java certification.

Course Information

Basic Knowledge of Java is required

Understand the principles of functional programming and how they contribute to safe parallelism
Understand the new features of Java interfaces, including the notion of the functional interface
Use lambda expressions and functional interfaces as a lean alternative to anonymous classes
Use streams to perform computations on sequences of data
Use streams to seamlessly perform parallel computations with the Java 9 SDK
Using streams to perform computations on sequences of data
Using streams to seamlessly perform parallel computations with the Java 9 SDK

This course is intended for all Java programmers who want to take full advantage of the new functional features of Java, including the opportunity to easily parallelize performance-critical sections of code.
Experienced programmers and senior engineers who have already been exposed to the functional paradigm will also benefit from the course, by quickly picking up the Java way to blend object-oriented and functional programming.
To follow the course at full speed, the audience is supposed to be familiar with most Java 5 features, including generics and multi-threading, and with the basic interfaces and classes from the Java Collection Framework, namely lists, sets, and iterators.
Upon completion, viewers will be able to employ the functional features of Java 9 to write code that is clearer, more efficient and easier to maintain.

• Lifetime Access to Each Course
• Certificate on Completion of Course
• No Extra Charges Or Admin Fees
• Easy Access to Courses
• High Priority Support After Sales.
• Big Discounts on Individual Courses

Course Specifications

IT and Computing courses are available to study on our learning platform. 

See All Courses

Adult education is the non-credential activity of gaining skills and improved education. 

See All Courses

Online education is electronically supported learning that relies on the Internet for teacher/student interaction. 

See All Courses

A short course is a learning programme that gives you combined content or specific skills training in a short period of time. Short courses often lean towards the more practical side of things and have less theory than a university course – this gives you a more hands-on experience within your field of interest.

See All Courses

Course duration is 24 hours.

See All Courses

Study Learn Grow

Related Jobs