Authors: Bryan Hansen, Sarah Holderness, Kevin Jones, Sander Mak, Maurice Naftalin, Mike Nolan, Jose Paumard, Sekhar Srinivasan, Richard Warburton, Jim Wilson

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


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 58m

1h 58m

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 Overview2m
  2. Introducing the Java Platform16m
  3. Adopting Java33m
  4. From Desktop to Enterprise Java to the Cloud19m
  5. Popular Java Libraries17m
  6. Practices and Common Tools17m
  7. Examining Alternative JVM Languages12m

Java Fundamentals: The Java Language

by Jim Wilson

Dec 2, 2015 / 7h 42m

7h 42m

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 Overview1m
  2. Introduction and Setting up Your Environment14m
  3. Creating a Simple App35m
  4. Variables, Data Types, and Math Operators31m
  5. Conditional Logic, Looping, and Arrays50m
  6. Representing Complex Types with Classes40m
  7. Class Initializers and Constructors27m
  8. A Closer Look at Parameters31m
  9. Class Inheritance47m
  10. More About Data Types50m
  11. Exceptions and Error Handling35m
  12. Working with Packages33m
  13. Creating Abstract Relationships with Interfaces34m
  14. Static Members, Nested Types, and Anonymous Classes27m

Java Fundamentals: The Core Platform

by Jim Wilson

Jun 28, 2016 / 7h 25m

7h 25m

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 Overview1m
  2. Introduction4m
  3. Input and Output with Streams and Files56m
  4. String Formatting and Regular Expressions41m
  5. Working with Collections38m
  6. Controlling App Execution and Environment45m
  7. Capturing Application Activity with the Java Log System49m
  8. Multithreading and Concurrency1h 13m
  9. Runtime Type Information and Reflection53m
  10. Adding Type Metadata with Annotations36m
  11. Persisting Objects with Serialization43m

What’s New in Java 11: Long-term Support

by Sander Mak

Sep 14, 2018 / 1h 10m

1h 10m

Start Course

Staying up to speed with Java is difficult for any Java developer, as Java 11 is released only six months after Java 10. In this course, What's New in Java 11: Long-term Support, you'll learn about the new and most important features in Java 11. First, you'll learn about the accelerated release schedule and how Java 11 is different. Next, you'll dive into the many deprecations and removals that happened in Java 11 that may affect your codebases. There are new library and language features to explore as well, such as an all-new HttpClient API. Last, you'll learn about performance and security enhancements in this release. When you're finished with this course, you'll be ready to make the most of Java 11 in your own projects.

Table of contents
  1. Course Overview1m
  2. Introducing Java 1119m
  3. Deprecations and Removals15m
  4. Language and Library Improvements22m
  5. Performance and Security Improvements11m

Java Fundamentals: Collections

by Richard Warburton

Mar 7, 2016 / 4h 2m

4h 2m

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?12m
  2. Defining and Iterating Collections28m
  3. Collections with Iteration Order: Lists36m
  4. Collection with Uniqueness: Sets40m
  5. Collections with Modification Order: Queues, Deques, and Stacks39m
  6. Collections of Pairs: Maps1h 3m
  7. Collection Operations20m

Java Fundamentals: Generics

by Richard Warburton

Aug 10, 2015 / 3h 53m

3h 53m

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 Generics20m
  2. Java's Generic Collections and Friends30m
  3. Generic Classes and Interfaces26m
  4. Generics on Methods15m
  5. Wildcards33m
  6. Raw Types and Compatibility49m
  7. Reflection25m
  8. Advanced Topics32m

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

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 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 Overview1m
  2. Overview of java.time21m
  3. The Basics of java.time23m
  4. Working with Time Zones50m
  5. Formatting and Parsing35m

Java Platform: Working with Databases Using JDBC

by Sekhar Srinivasan

Mar 3, 2016 / 2h 54m

2h 54m

Start Course

This course provides complete information which is required for JDBC Programming from Beginner Level to Advanced level by describing how to read and manage data from relational databases, calling stored procedures, working with prepared statements, transaction management, reading and storing CLOB data, storing images within the databases and retrieving the image from the database, connection pooling, working with metadata etc.

Table of contents
  1. Course Overview1m
  2. Introduction18m
  3. Getting Started with JDBC28m
  4. Performing Basic CRUD Operations Using JDBC56m
  5. Working with Stored Procedures32m
  6. Managing Transactions7m
  7. Working with BLOB and CLOB14m
  8. Working with Metadata7m
  9. Pooling Database Connections7m

Applying Concurrency and Multi-threading to Common Java Patterns

by Jose Paumard

Apr 4, 2016 / 2h 39m

2h 39m

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 Synchronization48m
  2. Implementing the Producer/Consumer Pattern Using Wait / Notify36m
  3. Ordering Read and Writes Operations on a Multicore CPU34m
  4. Implementing a Thread Safe Singleton on a Multicore CPU41m

Java Web Fundamentals

by Kevin Jones

Jun 5, 2014 / 2h 28m

2h 28m

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. Introduction13m
  2. Writing Servlets31m
  3. JavaServer Pages25m
  4. The Expression Language16m
  5. The Java Standard Tag Library21m
  6. Writing Tag Libraries40m


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. Introduction15m
  2. Testing Code38m
  3. Writing Good Tests48m
  4. Introducing Test Driven Development43m
  5. Dependencies39m
  6. Going Outside-in47m

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 Tools20m
  2. Required Setup7m
  3. JUnit Overview and Demonstrating Red / Green / Refactor29m
  4. Basic Features of Mockito28m
  5. Mockito Feature Deep-Dive37m
  6. Fixture Management & Data Component Testing49m

Design Patterns in Java: Structural

by Bryan Hansen

Aug 20, 2015 / 2h 42m

2h 42m

Start Course

This course is part of a three-part series covering design patterns using Java. This part covers structural design patterns such as Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy as defined by the Gang of Four. We look at examples in the Java API and code examples of each pattern.

Table of contents
  1. Introduction and Prerequisites4m
  2. Adapter Design Pattern20m
  3. Bridge Design Pattern30m
  4. Composite Pattern19m
  5. Decorator Pattern19m
  6. Facade Pattern20m
  7. Flyweight Pattern17m
  8. Proxy Pattern29m
  9. Next1m

Design Patterns in Java: Creational

by Bryan Hansen

Apr 28, 2015 / 1h 54m

1h 54m

Start Course

This course is part of a 3 part series covering design patterns using Java. This part covers the creational design patterns, Singleton, Builder, Prototype, Factory, and AbstractFactory as defined by the Gang of Four. We look at examples in the Java API and code examples of each pattern.

Table of contents
  1. Introduction & Prerequisites4m
  2. Singleton Pattern25m
  3. Builder Pattern20m
  4. Prototype Pattern18m
  5. Factory Method Pattern21m
  6. AbstractFactory Pattern22m
  7. What Next?0m

Design Patterns in Java: Behavioral

by Bryan Hansen

Mar 9, 2016 / 4h 1m

4h 1m

Start Course

This course is part of a 3 part series covering design patterns using Java. This part covers the behavioral design patterns, Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template, and Visitor as defined by the Gang of Four. We look at examples in the Java API and code examples of each pattern.

Table of contents
  1. Course Overview1m
  2. Behavioral Design Patterns Introduction3m
  3. Chain of Responsibility Pattern16m
  4. Command Pattern28m
  5. Interpreter Pattern19m
  6. Iterator Pattern22m
  7. Mediator Pattern14m
  8. Memento Pattern18m
  9. Observer Pattern22m
  10. State Pattern28m
  11. Strategy Pattern24m
  12. Template Method Pattern19m
  13. Visitor Pattern21m
  14. What Next?1m

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.

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 activating this benefit, you agree to abide by Pluralsight's terms of use and privacy policy.

I agree, activate benefit

Grow your Java skills

Java is a programming language used for both client-server programs, web applications and Android development. While it is mostly considered to be an object-oriented language, it is really more of a multi-paradigm language due to the inclusion of imperative and generic paradigms.


Learn on your own timeline


Master your craft

Emerging trends

Keep up with emerging trends

Level up as a Java developer

15 Courses

52 Hours

Get your Skill IQ

Java paths

Get rid of the guesswork and save time by learning the right skills in the right order.


Pluralsight IQ

Pluralsight IQ

Validate skill levels with assessments that take 5 minutes or less.


Thousands of courses

Keep up with the pace of change with expert-led, in-depth courses.



Curate and share Pluralsight content to reach your learning goals faster.

Hands-on learning

Hands-on learning

Practice and apply knowledge faster in real-world scenarios with projects. and interactive courses.

What is Pluralsight?

As you evolve your career, you need a learning solution that inspires you to create the future. With our platform, you can keep up with the speed of technology, work smarter and faster, and gain in-demand skills in areas like cloud, mobile, security and data.

Start creating the future now

Explore the benefits of a plan for teams of 2 or more. Learn more »

Our learners love us

Push the limits of what you can do