Parallel Functional Programming in Java LiveLessons describes by example how to apply Java functional programming features and frameworks to alleviate the complexity of developing software that can run efficiently and scalably on multi-core and distributed-core processors.
In this course, learn how to develop programs using powerful object-oriented and functional programming language features and frameworks supported by Java. This course first provides an introduction to Javas foundational functional programming features, including lambda expressions, method references, and functional interfaces. These core features provide the foundation for the next topic in this course: the Javas Streams framework, which supports functional-style sequential and parallel operations on streams of elements, such as map-reduce transformations on Java collections.
This course also shows by example how to develop efficient reactive programs that run scalably on multi-core processors using powerful object-oriented and functional programming language features and parallelism frameworks supported by Java. This portion of the course describes how Java leverages its functional programming features to create the completable futures framework. This framework defines a powerful reactive programming model that allows programmers to run multiple asynchronous operations concurrently in one or more pools of threads and process their results asynchronously with respect to other operations in a program.
Learn How To
- Develop efficient parallel and reactive programs using powerful modern Java object-oriented and functional programming language features and frameworks
- Recognize the inherent and accidental complexities involved with developing parallel and reactive software for modern Java clients and servers
- Understand how common software patterns and modern Java parallel and reactive programming mechanisms can and cannot help to alleviate this complexity
- Know where to find additional sources of information on how to successfully develop robust parallel and reactive programs in modern Java
Who Should Take This Course
This training is intended for software developers who are familiar with
- General object-oriented and functional design/programming concepts, such as encapsulation, abstraction, polymorphism, extensibility, and the Unified Modeling Language (UML)
- Core object-oriented programming language features, such as classes, inheritance, dynamic binding, and generics that are available in Java
Students need to know how to
- Download and install the Java JDK and JRE
- Download and install an IDE, such as IntelliJ, NetBeans, Eclipse, or Android Studio
- An installed copy of the Java JDK and JRE
- An installed copy of IntelliJ, NetBeans, Eclipse, or Android Studio