Learn Java
Running Your First Java Application
-
Getting Started with Java
Downloading and setting up the JDK, writing your first Java class, and creating your first Java application.
-
Launching Single-File Source-Code Programs
Launching Single-File Source-Code Java programs with the Java launcher.
-
JShell - The Java Shell Tool
jshell interactively evaluates declarations, statements, and expressions of the Java programming language in a read-eval-print loop (REPL).
-
Building a Java application in Visual Studio Code
Oracle Java Platform extension enables you to develop your Maven and Gradle Java project in Visual Studio Code.
-
Building a Java application in IntelliJ IDEA
Learn how to code, run, test, debug and document a Java application in IntelliJ IDEA.
-
Building a Java Application in the Eclipse IDE
Installing and getting started with the Eclipse IDE for developing Java applications
Staying Aware of New Features
-
Java Platform Evolution
Java has come a long ways since Java 8. Let's go over some of this evolution.
-
Using the Preview Features Available in the JDK
How to compile and execute the preview features available in the JDK.
Getting to Know the Language
-
Objects, Classes, Interfaces, Packages, and Inheritance
Introducing the object oriented programming.
-
Java Language Basics
Getting to know the basics of the Java language.
-
Classes and Objects
Defining your own classes, declaring member variables, methods, and constructors.
-
Using Record to Model Immutable Data
How to model your immutable data with records to make your code simpler and more readable.
-
Numbers and Strings
Understanding numbers, characters and strings of characters.
-
Inheritance
Leveraging inheritance in Java applications.
-
Interfaces
Creating and using interfaces.
-
Generics
Working with parameterized types.
-
Lambda Expressions
Using Lambda Expressions to improve the readability of your code.
-
Annotations
Annotations is a form of metadata, provide data about a program that is not part of the program itself. Annotations have no direct effect on the operation of the code they annotate.
-
Packages
How to bundle classes and interfaces into packages, how to use classes that are in packages, and how to arrange your file system so that the compiler can find your source files.
-
Using Pattern Matching
Pattern matching is the next major evolution of the Java language. It brings new features, one by one, that greatly improve the way you can write your Java code.
-
Exceptions
Using exceptions to handle errors and other exceptional events.
-
Refactoring from the Imperative to the Functional Style
Learning to change code from the Imperative to the Functional Style.
Mastering the API
-
The Collections Framework
Getting to know the Collections Framework to store and retrieve data in collections and hashmaps.
-
The Stream API
Process your in-memory data with Java streams and collectors. Process them faster with parallel streams.
-
The Java I/O API
Access external resources with the Java Input / Output API.
-
Common I/O Tasks in Modern Java
This article focuses on tasks that application programmers are likely to encounter, particularly in web applications, such as reading and writing text files, reading text, images, JSON from the web, and more.
-
The Date Time API
Covers the Date Time API added to the JDK 8, including the core concepts and classes.
-
Regular Expressions
Provides a general overview of regular expressions. It also introduces the core classes that comprise this API.
-
Introduction to Java Reflection
Java reflection allows an object to look in the mirror and discover what fields, methods, and constructors it has. We can read and write fields, invoke methods, and even create new objects by calling the constructors.
-
The Reflection API
Let us deep dive in to the Reflection API, and see how you can use it to examine or modify the runtime behavior of applications running in the Java Virtual Machine.
-
Introduction to Method Handles
Method handles, how they are different from the Reflection API, and the tooling they provide.
-
Fundamentals of Security using JDK Libraries
Provides a general overview of security APIs. It also introduces the core components part of this API.
-
Virtual Threads
Virtual Threads: What, Why, and How?
Organizing your Application
-
Modules
Understand how the module system shapes the JDK and how you can use it to make your code base more maintainable.
-
Creating Runtime and Application Images with JLink
Learn how to use the command line tool
jlink
to create custom-made runtime images or self-contained application images.
Getting to know the JVM
-
The Core JDK Tools
Learn about the tools the JDK gives you to compile, run, analyze and monitor your code.
-
The Monitoring Tools
Learn about the tools the JDK gives you to monitor your application.
-
JPackage
Packaging your application to create a native installer.
-
The Security Tools
Setting security policies with the JDK tools and commands.
-
The Troubleshooting Tools
Learn about the tools the JDK gives you to troubleshoot Java applications and the Java Virtual Machine (JVM).
-
Garbage Collection in Java Overview
Understanding the key aspects of how garbage collection works in Java and how to tune garbage collection.
-
CDS and AppCDS in Hotspot
Understanding how to use CDS in HotSpot to improve JVM startup performance.
-
JDK Flight Recorder
Learn how to use JDK Flight Recorder to monitor, profile, and test your applications.
-
JWebserver - Launch the Java Simple Web Server
A tool that provides a minimal HTTP server, designed to be used for prototyping, testing, and debugging.
-
Complementary JDK Tools
Learn how to use complementary JDK tools like jextract.
Rich Client Applications
-
Download and Setup JavaFX
A guide to download and setup a JavaFX runtime on your machine.
-
JavaFX Fundamentals
Learn to create simple JavaFX applications.
-
Introduction to JavaFX animations
Learn to create advanced JavaFX animations
More Resources
-
Getting Started with Java Certification
Overview of the Java Certification and how to study
-
Debugging in Java
Learning how to use a debugger