1
00:00:00,007 --> 00:00:02,003
- [Instructor] Let's
start with an overview

2
00:00:02,003 --> 00:00:04,004
of the Java 9 features.

3
00:00:04,004 --> 00:00:08,006
First, I want to mention
the release date for Java 9.

4
00:00:08,006 --> 00:00:10,005
Right now, it is scheduled
to be made available

5
00:00:10,005 --> 00:00:16,000
to the general public starting
on September 21, 2017.

6
00:00:16,000 --> 00:00:16,009
In this release,

7
00:00:16,009 --> 00:00:21,002
they're expecting approximately
90 different new features.

8
00:00:21,002 --> 00:00:23,001
Now I'm not going to review all 90.

9
00:00:23,001 --> 00:00:25,003
I am going to try and pick out a few

10
00:00:25,003 --> 00:00:27,009
that I think are really
important for you to understand

11
00:00:27,009 --> 00:00:30,001
as we go forward with Java 9.

12
00:00:30,001 --> 00:00:33,009
But I will give you some
resources to find the entire list.

13
00:00:33,009 --> 00:00:37,004
As a matter of fact, here
is a link to a website

14
00:00:37,004 --> 00:00:40,003
that has a list of all the changes.

15
00:00:40,003 --> 00:00:47,009
You can go to http://openjdk.java.net

16
00:00:47,009 --> 00:00:50,002
under projects in JDK9.

17
00:00:50,002 --> 00:00:53,003
Lets go over there and take a quick look.

18
00:00:53,003 --> 00:00:59,003
Okay, here's the page, open
jdk.java.net/projects/jdk9/

19
00:00:59,003 --> 00:01:01,004
and you can see under
the scheduled portion,

20
00:01:01,004 --> 00:01:05,002
the very last one says September 21, 2017,

21
00:01:05,002 --> 00:01:07,007
is the general availability.

22
00:01:07,007 --> 00:01:10,008
Now if I scroll down, you'll
see it has some quick links,

23
00:01:10,008 --> 00:01:13,006
but it also has a list of the features.

24
00:01:13,006 --> 00:01:17,000
Each one of these numbers
is one of those JEPs,

25
00:01:17,000 --> 00:01:20,001
the JDK enhancement proposal.

26
00:01:20,001 --> 00:01:22,005
So if I scroll down, you can see I mention

27
00:01:22,005 --> 00:01:25,003
there's going to be process API updates.

28
00:01:25,003 --> 00:01:27,001
In this series, I'm also
going to talk briefly

29
00:01:27,001 --> 00:01:31,001
about the HTTP/2 client change
that they're going to make.

30
00:01:31,001 --> 00:01:35,001
You'll notice that JEP
200 is the modular JDK,

31
00:01:35,001 --> 00:01:38,002
and that's really a big
part of this release.

32
00:01:38,002 --> 00:01:41,003
If I scroll down, you can see
there are many different parts

33
00:01:41,003 --> 00:01:42,007
to this release.

34
00:01:42,007 --> 00:01:45,003
I don't have time to go
through all of the features,

35
00:01:45,003 --> 00:01:47,007
but I am going to point
out some of the highlights

36
00:01:47,007 --> 00:01:50,007
that I think are important to understand.

37
00:01:50,007 --> 00:01:53,005
The first one I'll review is this JSR.

38
00:01:53,005 --> 00:01:57,007
JSR 376 is Project Jigsaw.

39
00:01:57,007 --> 00:02:00,002
It introduces a new modular framework

40
00:02:00,002 --> 00:02:03,006
in the latest release of
Java, which is Java 9.

41
00:02:03,006 --> 00:02:06,009
If you're not familiar with
Java, it's a really big change

42
00:02:06,009 --> 00:02:10,007
because in the past, Java was
considered a monolithic type

43
00:02:10,007 --> 00:02:15,002
of framework, where every
program had access to everything.

44
00:02:15,002 --> 00:02:19,002
But in today's world of smaller
devices such as smartphones

45
00:02:19,002 --> 00:02:22,000
and tablets, it's important
that we're able to create

46
00:02:22,000 --> 00:02:24,003
smaller run time environments.

47
00:02:24,003 --> 00:02:27,005
So this new platform
will really benefit us.

48
00:02:27,005 --> 00:02:31,002
One of many changes is the JEP 222.

49
00:02:31,002 --> 00:02:35,007
It's called jshell, which is
a new REPL session for Java.

50
00:02:35,007 --> 00:02:39,001
This new tool allows us
to do interactive Java

51
00:02:39,001 --> 00:02:40,007
from the command line.

52
00:02:40,007 --> 00:02:43,006
This process, often called a REPL session,

53
00:02:43,006 --> 00:02:46,001
can be used for evaluating declarations

54
00:02:46,001 --> 00:02:48,009
such as Nx = 5, for evaluating statements

55
00:02:48,009 --> 00:02:52,004
and for evaluating expressions

56
00:02:52,004 --> 00:02:55,003
in the Java programming language.

57
00:02:55,003 --> 00:03:00,003
JEP 102 is updates to the process API.

58
00:03:00,003 --> 00:03:04,004
This update improves the API
for controlling and managing

59
00:03:04,004 --> 00:03:07,000
operating system processes.

60
00:03:07,000 --> 00:03:09,007
And the last update that
I'm going to concentrate on

61
00:03:09,007 --> 00:03:16,002
is JEP 110, which is support
for the new HTTP/2 Client.

62
00:03:16,002 --> 00:03:20,005
This change defines a new HttpClient API

63
00:03:20,005 --> 00:03:24,006
that implements that new
protocol and the WebSocket.

64
00:03:24,006 --> 00:03:30,008
This Client can replace the
legacy HttpURLConnection API,

65
00:03:30,008 --> 00:03:34,009
which you'll see is much
better and much easier to use.

66
00:03:34,009 --> 00:03:37,009
At the end of the series, I've
also included a short intro

67
00:03:37,009 --> 00:03:41,001
to a few more of the JEPs
that you might encounter

68
00:03:41,001 --> 00:03:42,006
as Java programmers.

69
00:03:42,006 --> 00:03:45,001
But remember, this is not a complete list.

