Authors: Sander Mak, Jim Wilson, Richard Warburton, Maurice Naftalin, Richard Monson-Haefel, Sarah Holderness, Jose Paumard, Kevin Jones, Mike Nolan

Java is a programming language used for both client-server programs, web applications and Android development. It is one of the most popular programming languages and runs on all... Read more

What you will learn

  • Control flow
  • Operators
  • Generic classes & methods
  • Collections
  • Streams
  • Lambdas
  • Objects
  • Classes
  • Interfaces
  • Inheritance
  • Exception handling
  • Primitive types
  • String
  • Threads
  • IO


No previous experience is required, and all necessary tools and concepts will be introduced throughout the path.


These introductory Java courses will teach you the basics of the language and how to effectively work with Java in the EE context. Some of the concepts you will master in this section include control flow in Java, object orientation, exception handling and even generics. By the end of these Java courses you will have the skillset to work on your own Java application.

Modern Java: The Big Picture

by Sander Mak

Nov 2, 2018 / 1h 59m

1h 59m

Start Course

You’ve heard about Java and want to get started with it, but what is Java really about? In this course, Modern Java: The Big Picture, you'll gain an overview of what you can expect from Java as a development platform. First, you'll learn the answers to important questions like “What does Java code look like?" and "How is it run?” Next, you'll explore the JDK and learn when you should use Java and when you shouldn't. Finally, you’ll discover the most popular libraries, practices, and tools used in modern Java development. After finishing this course, you’ll have a broad outlook on modern Java development and you will know which Java skills to focus on next in your personal development.

Table of contents
  1. Course Overview
  2. Introducing the Java Platform
  3. Adopting Java
  4. From Desktop to Enterprise Java to the Cloud
  5. Popular Java Libraries
  6. Practices and Common Tools
  7. Examining Alternative JVM Languages

Java Fundamentals: The Java Language

by Jim Wilson

Dec 2, 2015 / 7h 43m

7h 43m

Start Course

This course provides complete coverage of the Java programming language giving you the strong language foundation required for any Java-based development environment. Whether targeting a client-based, server-side, or Android environment, this course provides you with everything you need to quickly ramp up and become an effective Java programmer.

Table of contents
  1. Course Overview
  2. Introduction and Setting up Your Environment
  3. Creating a Simple App
  4. Variables, Data Types, and Math Operators
  5. Conditional Logic, Looping, and Arrays
  6. Representing Complex Types with Classes
  7. Class Initializers and Constructors
  8. A Closer Look at Parameters
  9. Class Inheritance
  10. More About Data Types
  11. Exceptions and Error Handling
  12. Working with Packages
  13. Creating Abstract Relationships with Interfaces
  14. Static Members, Nested Types, and Anonymous Classes

Java Fundamentals: The Core Platform

by Jim Wilson

Jul 21, 2016 / 7h 26m

7h 26m

Start Course

Java is the most in-demand programming language skill amongst software developers, and one of the most important skills for big data specialists. This course, Java Fundamentals: The Core Platform, provides thorough coverage of the core Java platform, giving you the foundation you need to begin developing Java applications using the features and capabilities of the Java Runtime Environment (JRE), as well as providing you with the skills you need to quickly ramp-up and begin developing effectively with Java using the JRE. First, you'll learn about working with streams, files, and the file system. You'll also learn about I/O topics specific to working with files such open/closing files, detecting end-of-file, and buffering. Next, you'll learn about configuring application execution and environments, the features available, and detailed discussions of the PATH and CLASSPATH environment variables that affect the Java runtime. Finally, you'll learn about multithreading and concurrency, taking a look at the basic ideas of the thread startup lifecycle along with the more sophisticated executor service. After watching this course, you'll be ready to begin working within any of the many environments that rely on Java.

Table of contents
  1. Course Overview
  2. Introduction
  3. Input and Output with Streams and Files
  4. String Formatting and Regular Expressions
  5. Working with Collections
  6. Controlling App Execution and Environment
  7. Capturing Application Activity with the Java Log System
  8. Multithreading and Concurrency
  9. Runtime Type Information and Reflection
  10. Adding Type Metadata with Annotations
  11. Persisting Objects with Serialization

What’s New in Java 13

by Sander Mak

Aug 9, 2019 / 46m


Start Course

Java 13 is already the second release of Java in 2019. In this course, What’s New in Java 13, you'll get an overview of all the important features in Java 13. First, you will learn about API changes, such as updates to the ByteBuffer API. Next, you will discover a preview Java language feature called Text Blocks. Finally, you will look at platform changes, looking at how the JDK reimplements the Socket API and improves upon the Application Class Data Sharing feature. When you're finished with this course, you will be ready to make the most of Java 13 in your own projects.

Table of contents
  1. Course Overview
  2. Java 13 API Updates
  3. Preview Feature: Text Blocks
  4. Platform Changes

Java Fundamentals: Collections

by Richard Warburton

Mar 7, 2016 / 4h 3m

4h 3m

Start Course

Working with data is fundamental to any business problem. Java Collections are data structures designed to store and process data in memory. We start with why you want to use collections instead of arrays, cover the capabilities of Lists, Sets, and Maps and explain the different data structure tradeoffs.

Table of contents
  1. What Are Collections and Why Use Them?
  2. Defining and Iterating Collections
  3. Collections with Iteration Order: Lists
  4. Collection with Uniqueness: Sets
  5. Collections with Modification Order: Queues, Deques, and Stacks
  6. Collections of Pairs: Maps
  7. Collection Operations

Java Fundamentals: Generics

by Richard Warburton

Oct 31, 2019 / 4h 8m

4h 8m

Start Course

Java’s powerful generics has been available to developers for ten years now and is extensively used throughout both core and third party libraries. Unfortunately, it's not as well understood as it could be. This course is here to help. We’ll both shine a light on the common use cases of generics on classes, methods, or interfaces and also peer into some of the darker corners such as type bounds and wildcards.

Table of contents
  1. The What and Why of Java Generics
  2. Java's Generic Collections and Friends
  3. Generic Classes and Interfaces
  4. Generics on Methods
  5. Wildcards
  6. Raw Types and Compatibility
  7. Reflection
  8. Advanced Topics


This section of Java tutorials goes further in depth with the language, giving you additional tools for your Java toolbelt. Now that you know a little about Java, you’ll be ready for the next level of understanding as you dive into memory management, reflection and even useful frameworks like Spring.

Programming with Dates and Times in Java 8

by Maurice Naftalin

Jul 23, 2018 / 2h 12m

2h 12m

Start Course

Handling dates and times is an essential part of most business and scientific applications. In this course, Programming with Dates and Times in Java 8, you will learn all about the much-needed new library in Java 8: the java.time API. First, you will learn the basic use of the core java.time classes. Next, you will discover how the library handles the complexities of time zones and daylight saving time transitions. Finally, you will explore the interconversion of java.time classes with other Java types and with database representations. When you are finished with this course, you will have a thorough knowledge of how to use this modern Java library for the fundamentally important problems of handling dates and times in your applications.

Table of contents
  1. Course Overview
  2. Overview of java.time
  3. The Basics of java.time
  4. Working with Time Zones
  5. Formatting and Parsing

Java Core Libraries: JDBC

by Richard Monson-Haefel

Oct 14, 2019 / 1h 45m

1h 45m

Start Course

Being able to read and write data to a relational database is an absolute, must-have skill when working with Java applications. In this course, Java Core Libraries: JDBC, you will gain the ability to access and modify data in relational databases using the JDBC API. First, you will learn how to connect the JDBC API to a database. Next, you will discover how to read and update data in a database using the JDBC API. Finally, you will explore advanced techniques for working with large chunks of data, calling stored procedures, using instance pooling, transactions, and the JDBC RowSet. When you’re finished with this course, you will have the skills and knowledge needed to utilize the JDBC API in your work with complete confidence.

Table of contents
  1. Course Overview
  2. Overview and Setup
  3. Connecting JDBC to the Relational Database
  4. Using JDBC to Query Databases
  5. Using JDBC to Update Databases
  6. Using Blobs, Clobs and CallableStatements
  7. Using Connection Pooling, Transactions, and RowSets

Add Database Admin Features to a Java Book Store Web App

by Sarah Holderness

Jun 1, 2018 / 1h 35m

1h 35m

Start Project

In this project you’ll follow along with our instructions and add update and delete features to the admin section of an existing Java Web application.

Project overview
  1. Setup15m
  2. Deleting Books From a Database20m
  3. Showing an Edit Form30m
  4. Updating Books In a Database30m

Applying Concurrency and Multi-threading to Common Java Patterns

by Jose Paumard

Apr 4, 2016 / 2h 40m

2h 40m

Start Course

Every developer needs to know how to write multi-threaded applications in Java. This course, Applying Concurrency and Multi-threading to Common Java Patterns, is a precise presentation of all the fundamentals you'll need. You'll learn about the main problems of concurrent programming on multicore CPU, including race condition, synchronization, reentrant lock, and deadlock. Next, you'll cover how your application use is moved from the main memory to the CPU caches and how false sharing can occur. Finally, you'll be introduced to the Java Memory Model and the notion of happen-before. By the end of this course, you will understand how concurrency and multi-threading work on a variety of Java patterns and you'll be able to use this knowledge to create better apps.

Table of contents
  1. Understanding Concurrency, Threading, and Synchronization
  2. Implementing the Producer/Consumer Pattern Using Wait / Notify
  3. Ordering Read and Writes Operations on a Multicore CPU
  4. Implementing a Thread Safe Singleton on a Multicore CPU

Java Web Fundamentals

by Kevin Jones

Jun 5, 2019 / 3h 22m

3h 22m

Start Course

Many Java web frameworks, such as Struts, are built on top of the Servlet and JavaServer Page specifications and base libraries. To fully understand how these frameworks operate, and to be able to take full advantage of the facilities they offer, you should understand the foundations such frameworks are built on. This course takes you through building a web application using the base Servlet and JavaServer Page libraries. The course discusses the Model-View-Controller pattern using Servlets as the Controller and JavaServer Pages as the View. You will also learn how to hide complex UI interaction inside tag libraries. The course will show you how it is possible to build a web application using these fundamental technologies, and how other frameworks are built.

Table of contents
  1. Course Overview
  2. Introduction
  3. Writing Servlets
  4. JavaServer Pages
  5. The Expression Language
  6. The Java Standard Tag Library
  7. Writing Tag Libraries
  8. Event Listeners
  9. Writing Filters
  10. Asynchronous Programming

Add a Session-based Shopping Cart to a Java Book Store Web App

by Sarah Holderness

Jul 23, 2018 / 1h 10m

1h 10m

Start Project

In this project you’ll follow along with our instructions and add update and delete features to the shopping cart section of an existing Java Web application.

Project overview
  1. Setup15m
  2. Adding Update Buttons to the Shopping Cart15m
  3. Deleting from the Shopping Cart20m
  4. Updating the Shopping Cart20m


This final section is designed for the Java developer with a little experience under their belt. This sections of advanced Java tutorials dives deep into areas that every Java pro will want to ace before they call themselves a master. Topics such as patterns, best practices and testable code are fully covered in this section.

Introduction to Testing in Java

by Richard Warburton

May 11, 2015 / 3h 54m

3h 54m

Start Course

This course introduces why you want to write automated tests for your code and how to implement this in Java, covering fundamentals of how to write simple tests using JUnit and Hamcrest, through Test Driven Development (TDD) and then explains how to structure your code and design in order to make testing easier.

Table of contents
  1. Introduction
  2. Testing Code
  3. Writing Good Tests
  4. Introducing Test Driven Development
  5. Dependencies
  6. Going Outside-in

Test-Driven Development Practices in Java

by Mike Nolan

Apr 7, 2014 / 2h 54m

2h 54m

Start Course

This course covers Test-Driven Development (TDD) practices and tools supporting TDD on the Java Platform. This includes information on JUnit, Mockito, PowerMock, and DBUnit.

Table of contents
  1. Overview of Practices, Principles, and Tools
  2. Required Setup
  3. JUnit Overview and Demonstrating Red / Green / Refactor
  4. Basic Features of Mockito
  5. Mockito Feature Deep-Dive
  6. Fixture Management & Data Component Testing
Offer Code *
Email * First name * Last name *
Country *

* Required field

Opt in for the latest promotions and events. You may unsubscribe at any time. Privacy Policy

By providing my phone number to Pluralsight and toggling this feature on, I agree and acknowledge that Pluralsight may use that number to contact me for marketing purposes, including using autodialed or pre-recorded calls and text messages. I understand that consent is not required as a condition of purchase from Pluralsight.

By activating this benefit, you agree to abide by Pluralsight's terms of use and privacy policy.

I agree, activate benefit