Learning path: Java 9: Programming with Java 9
4.0 (1 rating)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
25 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learning path: Java 9: Programming with Java 9 to your Wishlist.

Add to Wishlist

Learning path: Java 9: Programming with Java 9

Incorporate the most recent version of Java by learning to code using Java 9
4.0 (1 rating)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
25 students enrolled
Created by Packt Publishing
Last updated 7/2017
English
Current price: $10 Original price: $200 Discount: 95% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 7.5 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Learn the functional aspects of Java 9 programming
  • Learn about the Reactive aspects of Java 9 programming
  • Learn about the latest Lambda expressions
  • Learn about the new Stream operators
View Curriculum
Requirements
  • Basic knowledge about Java and its previous versions is required to excel in this Learning Path.
Description

If you’re a programmer who wants to stay updated according to the industry standards, then this Learning Path is for you.

Java 9 is the most recent update to the list of Java languages. Java 9 is the successor of Java 8 and this version is making a lot of developers happy due to a variety of reasons. Java 9 incorporates a plethora of new changes like the Java platform module system, restructuring the JDKs and JREs runtime modules, defining a new URI scheme for naming modules, classes, and so on.

In this Learning Path, you will learn functional and reactive programming using Java 9. functional programming includes the introduction to functional Programming and installation.

Application development with Java 9 can be summarized in these words:

More Power; Less Code.

Under reactive programming, you will get to learn about the basics of reactive programming and understand the Flow API. You will also get to learn about the various operators, and learn about the unit and concurrency testing used in reactive programming. You will also learn about Lambda expressions, Stream operations, sequential data processing and parallel streams.

By the end of this Learning Path, you will be able to successfully write powerful functional and reactive programs with the help of Java 9.

 About the Author:

For this course, we have combined the best works of this esteemed 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.

Manuel Vicente Vivo is a Senior Associate Software Engineer at Capital One. He is involved in all kind of decisions regarding the Mobile product. He had an opportunity to do some API and Mobile development (both Android and iOS) and automation testing and also wrote few articles about RxJava (1 and 2) that are quite popular. He is interested in functional programming. Manuel has spoken in conferences about Rx Java. He always looks for perfection, and he believes that having an application that is well tested and with a really defined structure makes a huge difference.

Who is the target audience?
  • A programmer or an enthusiast wanting to learn all the new and updated aspects of the Java programming language.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
55 Lectures
07:39:16
+
Functional Programming with Streams in Java 9
27 Lectures 05:02:53

This video provides an overview of the entire course.

Preview 04:26

This video covers downloading and installing the required software and setup.

Installation and Setup
04:30

What is functional programming and what are its origins?

What Is Functional Programming?
09:13

What are the new capabilities of Java interfaces?

Interfaces Get a Boost
08:31

What is a functional interface?

Some Interfaces Are More Functional Than Others
06:01

What is the basic syntax for lambda expressions?

Preview 09:00

What is type inference and how does it apply to lambda expressions?

Typing Lambda Expressions
07:29

What variables can lambda expressions access?

Capturing Values
12:04

What are method references?

Method References
13:35

What are the functional interfaces that were already present in Java 7?

Preview 09:09

What functional interfaces were added to Java 8?

New Functional Interfaces
12:01

Are there functional interfaces whose arguments and return types are primitive types?

Functional Interfaces for Primitive Types
06:43

Can we implement a functional interface by composing simple objects?

Composing Functions
10:57

What is a stream? How does it relate to collections and iterators?

Preview 11:32

How can you create a stream?

Creating a Stream
09:00

What do we mean by “lazy operations” and “lazy evaluation”?

Understanding Lazy Evaluation
10:18

What is a monad? In what sense are streams monads?

Streams as Monads
11:23

How can we select or discard specific elements from a stream?

Preview 14:53

How can I manipulate stream elements? How can I sort a stream?

Transforming and Rearranging Stream Elements
09:00

How can I terminate a stream? How can I summarize a stream into a single object?

Basic Terminal Operations
13:48

What if standard terminal operations do not fit my needs? How can I define a custom terminal operation?

Reductions and Collectors
26:19

Can we avoid wrapping and unwrapping operations when dealing with primitive types?

Streams of Primitive Types
08:22

How can we create a parallel stream? What is a stateless function and how does it help achieve correct and efficient parallel execution of stream pipelines?

Preview 18:39

How do different stream sources and operations behave under parallel execution?

Using Parallel Streams
10:15

How are parallel streams implemented under the hood? What are the functionalities of the fork-join framework?

Looking Under the Hood: The fork-join Framework
07:06

How do 2-dimensional games detect collisions between game objects? How can we exploit functional-style programming to improve the performance of collision detection algorithms?

Preview 17:06

How can we further speed up collision detection? How can we build a stream of collisions from a stream of shapes? Is it beneficial to turn every stream into a parallel stream?

Two-Phase Collision Detection
21:33
+
Reactive Java 9
28 Lectures 02:36:23

This video gives overview of the entire course.

Preview 03:49

Why do we need reactive programming? What problems is it trying to solve? What are the benefits?

Installing R
03:01

In this video we're going to introduce reactive programming and understand what it is.

What is Reactive Programming?
05:11

Why do we need reactive programming? What problems is it trying to solve? What are the benefits?

Benefits of Reactive Programming
03:59

In this video, we're going to see the different elements involved in reactive programming, the principles of it and how we can use it in Java.

Reactive Explained in a Simple Way
13:20

Reactive programming is a broad term, that's why Reactive Streams comes to standardize the way different implementations should communicate between them.

Reactive Streams
07:28

Java 9 comes with a bunch of new features. Do you want to know what is new and what has been deprecated?

Preview 09:26

In this video we're going to learn how Java 9 supports reactive programming natively and see our first Reactive Programming example.

Flow API
09:42

Have you heard of functional reactive programming? What does it mean? How are reactive and functional programming related to each other?

Functional Programming
08:54

In this video we're going to introduce RxJava so you know a bit more about it.

Preview 02:25

How does Back Pressure affect us in RxJava 2.0? How can we deal with it?

Back Pressure
03:14

In this video we're going to learn how RxJava 2.0 implements the Reactive Streams specifications. How does it affect RxJava1.x?

Reactive Streams Implementation
06:22

What is an operator? How we can use them? Why do we need Marble Diagrams?

Marble Diagrams
02:43

What operators can we use in RxJava 2.0?

Operators 1/2
02:38

What operators can we use in RxJava 2.0?

Preview 03:47

In this video we're going to see the different ways we have to create Sources of Information in RxJava 2.0

Creating Sources
05:16

It's time to talk about how we can observe sources of information in RxJava 2.0.

Observing Sources
04:20

The aim of this video is to add a video with autoplay in the background.

Preview 05:01

How can we unit-test our reactive code? What tools do we have available?

Unit Testing
04:33

In this video we're going to introduce Akka and Akka Streams.

Preview 04:02

How can we use Akka for are active application? In this video we show the entities we have available.

Reactive Concepts
04:21

After knowing how we can use Akka in a reactive environment, how can we make it more powerful with endless possibilities?

Graphs
03:55

Once we know how to use Akka in a reactive way, we need to cover errors to make our code rock solid. What can we do with it?

Error Handling
04:16

In this video, we're going to cover the basics of RESTful web services, Spring and Jersey.

Preview 05:17

New to JAX-RS? Let's create a simple Hello World web application.

Importing Libraries and the Project Setup
06:18

Let's start coding complex logic. It's time to communicate with external APIs and handle it with RxJava.

Communicating with External APIs
09:25

We got the information we needed from an external API. How can we respond to the client with the information they need?

Responding to the Client
06:30

We have our web application up and working but it's not covered with unit tests. Let's add some tests covering reactive code in this video!

Unit Testing
07:10
About the Instructor
Packt Publishing
3.9 Average rating
7,282 Reviews
51,882 Students
616 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.