Hi everyone.
Welcome back.
In this lecture I'm going to give you all an introduction to modern Java, which includes an overview
of all the new features in Java and the release cycle, and more.
A quick call out here is that this is going to be a theory lecture.
So if you already know about modern Java and the latest release model, then you are welcome to skip
this lecture and move on to the next lecture.
First and foremost, I would like to talk about what does Java primarily mean?
Any time someone refers to Java, they are referring to Java as a programming language or Java as a
platform, which is the JDK, which includes the gray and the virtual machine, which primarily executes
the bytecode for us.
The term modern Java is coined from the fact that it continues to evolve and incorporate a lot of new
features in the recent years, I would like to highlight some of the major shifts that happened with
Java in this slide.
Some of the notable features are the introduction of functional programming in Java eight, which includes
lambdas, streams compatible features, and many other features that are close to functional programming.
The next one is the release of the Java modules, which is Java nine, which is also called the Java
Platform Module System.
In this release, the Java runtime libraries that is part of Java nine are modularized into separate
modules.
Prior to this, until Java nine, it used to be just the RT dot jar file, which is a runtime dot jar
file, which is kind of a monolith which holds everything in a single Jar file, which is basically
a big platform change.
Number three is the six month release cycle from Java ten onwards.
This means new features in Java are released every six months.
Java as a language is constantly evolving and bringing in new features to continuously excite the developers.
So in this slide, I would like to highlight and call out some of the features that we will be exploring
in this course.
The first part of the course, we will look at all the Java eight features in action, which includes
lambdas, streams, optionals, new DateTime APIs, and more.
And in the second part of the course, we will look at the features that got introduced from Java nine
and beyond.
Number one is the Java Platform module system.
And then we have local variable type inference record types, enhanced switch text blocks, seal classes,
pattern matching.
And there is a feature that got introduced called virtual threads, which is a big change when it comes
to multithreading.
So starting from Java nine and beyond, it was not like a major release as like Java eight, but they
continuously released features in each and every new Java release.
But if you add them up and look at it now, there are a lot of new features that are released to improve
the overall developer experience.
One thing I would like to call out before we move on, visual threads is a vast topic, and I won't
be covering virtual threads in this course.
I have a course released on this topic if you'd like to explore and learn about virtual threads.
Please do check my profile.
So the goal of this course is to provide you all a pragmatic experience on using these features in your
day to day coding?
So if you are a Java developer who would like to learn about all these features and the new features
that is going to be released in the future, then this is the right course for you.
I would like to talk a little bit on the release model before I wrap up this lecture.
Java is an open source language and it's managed under the open JDK project.
Java seven was the first version that was released under the Open source license.
Open JDK is maintained by Oracle, Red hat and the community.
There are different open JDK providers.
It might be confusing on which open JDK provider you need to choose from.
Some of the examples that I'm going to show you is Oracle.
We have Eclipse or Optimum called tamarin.
Amazon has its own thing.
Zul has its own thing.
IBM, Microsoft, RedHat and SAP.
They all have their own version of open JDK.
And all of these vendors have this concept of long term support releases.
The reason being, the long term support releases have a wide and extended support time frame compared
to the other ones.
Applications primarily run on these long term release or long term support releases, even though new
version is released every six months.
What I have seen from an organization perspective, they normally move from one Java version to other
Java version.
If there is a new long term support version is released, let's quickly take a look at the release model
and where to find more information from it.
So I'm going to use ChatGPT for this purpose.
For those of you who are hearing about ChatGPT for the very first time, you can think of this like
a super smart robot that can talk to you.
It understands the questions and it can answer you those questions.
It is pretty much trained on vast amounts of data, of books, internet data, websites, and it understands
your question and gives you the response accordingly.
So now what I'm going to do, I'm going to ask what are the different Java releases.
This is going to be showing you the information based on what it is trained on.
Okay.
So it is going to give you starting from JDK one.
And then it goes all the way until JDK 21.
I assume there was the latest long term support version at the time of recording this lecture.
So this basically stopped at this point, right.
What I'm going to do I'm going to enable the web search.
And then I'm going to ask the same question.
Let's go to the top and then ask for it.
What are the different Java releases.
Now what this is going to do is this is going to go to the web and search the results and consolidate
the results and provide that information to you in a nice, readable and digestible format.
Okay.
So there you go.
I got the response.
This response is directly coming from Wikipedia because if I go to the bottom, it gives you the source
where it got the information from.
So if you click on the sources you can see where this information is being retrieved from.
So it got this information from all these portals.
Okay.
And this is the long term support releases that I talked about.
So we have Java 17 and Java 21 which is the latest long term release version at the time of recording
this lecture.
So if you want to learn about the history of this one, you can go to this one and then take a look
at the Java version history.
While that is loading, what I'm going to do is I'm going to call out one more thing.
So the modern error.
So this is the scope of this course.
The modern era started from Java eight.
And then it goes all the way until 21 at the time of recording this lecture.
Okay.
So as long as there is a new LTS release is available, I'll be updating this course to reflect the
same.
Okay.
So now if you go and open up this one, if you go to the bottom.
So they talk about I believe the blocks that are highlighted in yellow are the long term support releases.
So you have Java eight to start with and then Java 11.
And if you go a little bit down we have Java 21.
So the LTS release as you can see it is scheduled for September 2025.
So when this is released that's when I'll go ahead and update the course with all the new features.
Okay, I hope you all have a pretty good idea about what is modern Java and the release model that's
tied to it.
In the next lecture, we will go ahead and install the latest long term version of the Java in our machine.
This marks the end of this lecture.
Thank you for watching.