Authors: Sekhar Srinivasan, Richard Warburton, Bryan Hansen, Kevin Jones, Jose Paumard, Jim Wilson, Sander Mak, 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


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.


Java Fundamentals: The Java Language

by Jim Wilson

Dec 2, 2015 / 7h 45m

Beginner • 7h 45m

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
    1m 24s
  2. Introduction and Setting up Your Environment
    17m 54s
  3. Creating a Simple App
    35m 31s
  4. Variables, Data Types, and Math Operators
    31m 16s
  5. Conditional Logic, Looping, and Arrays
    50m 28s
  6. Representing Complex Types with Classes
    40m 39s
  7. Class Initializers and Constructors
    27m 57s
  8. A Closer Look at Parameters
    31m 12s
  9. Class Inheritance
    47m 24s
  10. More About Data Types
    50m 40s
  11. Exceptions and Error Handling
    35m 58s
  12. Working with Packages
    33m 14s
  13. Creating Abstract Relationships with Interfaces
    34m 31s
  14. Static Members, Nested Types, and Anonymous Classes
    27m 19s

Java Fundamentals: The Core Platform

by Jim Wilson

Jun 28, 2016 / 7h 25m

Beginner • 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 Overview
    1m 27s
  2. Introduction
    4m 36s
  3. Input and Output with Streams and Files
    56m 57s
  4. String Formatting and Regular Expressions
    41m 31s
  5. Working with Collections
    38m 21s
  6. Controlling App Execution and Environment
    45m 49s
  7. Capturing Application Activity with the Java Log System
    49m 25s
  8. Multithreading and Concurrency
    1h 13m 18s
  9. Runtime Type Information and Reflection
    53m 55s
  10. Adding Type Metadata with Annotations
    36m 36s
  11. Persisting Objects with Serialization
    43m 30s

What's New in Java 10: Local-variable Type Inference

by Sander Mak

Mar 19, 2018 / 1h

Intermediate • 1h

Start Course

Java 10 is released only six months after Java 9. In this course, What's New in Java 10: Local-variable Type Inference, you'll learn about the accelerated release schedule of Java and what it means for you. First, you'll learn about the turning point in the release schedule and the new features that are in store. Next, you'll dive into the most eye-catching feature in Java 10: the introduction of local-variable type inference. Finally, you'll uncover other new features such as performance improvements to the G1 Garbage Collector, the introduction of Application Class Data Sharing, and improved Docker awareness of JDK 10. When you're finished with this course, you'll be ready to make the most of Java 10 in your own projects.

Table of contents
  1. Course Overview
    1m 36s
  2. Java 10 Introduction
    22m 4s
  3. Local-variable Type Inference
    23m 19s
  4. Performance Improvements
    13m 29s

Java Fundamentals: Collections

by Richard Warburton

Mar 7, 2016 / 4h 2m

Beginner • 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 13s
  2. Defining and Iterating Collections
    28m 56s
  3. Collections with Iteration Order: Lists
    36m 51s
  4. Collection with Uniqueness: Sets
    40m 54s
  5. Collections with Modification Order: Queues, Deques, and Stacks
    39m 58s
  6. Collections of Pairs: Maps
    1h 3m 36s
  7. Collection Operations
    20m 3s

Java Fundamentals: Generics

by Richard Warburton

Aug 10, 2015 / 3h 53m

Intermediate • 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 Generics
    20m 49s
  2. Java's Generic Collections and Friends
    30m 5s
  3. Generic Classes and Interfaces
    26m 26s
  4. Generics on Methods
    15m 29s
  5. Wildcards
    33m 39s
  6. Raw Types and Compatibility
    49m 8s
  7. Reflection
    25m 43s
  8. Advanced Topics
    32m 18s


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.


Java Platform: Working with Databases Using JDBC

by Sekhar Srinivasan

Mar 3, 2016 / 2h 54m

Beginner • 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 Overview
    1m 18s
  2. Introduction
    18m 38s
  3. Getting Started with JDBC
    28m 13s
  4. Performing Basic CRUD Operations Using JDBC
    56m 38s
  5. Working with Stored Procedures
    32m 42s
  6. Managing Transactions
    7m 6s
  7. Working with BLOB and CLOB
    14m 12s
  8. Working with Metadata
    7m 51s
  9. Pooling Database Connections
    7m 31s

Applying Concurrency and Multi-threading to Common Java Patterns

by Jose Paumard

Apr 4, 2016 / 2h 39m

Intermediate • 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 Synchronization
    48m 2s
  2. Implementing the Producer/Consumer Pattern Using Wait / Notify
    36m 31s
  3. Ordering Read and Writes Operations on a Multicore CPU
    34m 7s
  4. Implementing a Thread Safe Singleton on a Multicore CPU
    41m 8s

Java Web Fundamentals

by Kevin Jones

Jun 5, 2014 / 2h 28m

Intermediate • 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. Introduction
    13m 41s
  2. Writing Servlets
    31m 35s
  3. JavaServer Pages
    25m 20s
  4. The Expression Language
    16m 9s
  5. The Java Standard Tag Library
    21m 39s
  6. Writing Tag Libraries
    40m 32s


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

Beginner • 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
    15m 36s
  2. Testing Code
    38m 46s
  3. Writing Good Tests
    48m 19s
  4. Introducing Test Driven Development
    43m 51s
  5. Dependencies
    39m 44s
  6. Going Outside-in
    47m 48s

Test-Driven Development Practices in Java

by Mike Nolan

Apr 7, 2014 / 2h 54m

Intermediate • 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
    20m 58s
  2. Required Setup
    7m 45s
  3. JUnit Overview and Demonstrating Red / Green / Refactor
    29m 20s
  4. Basic Features of Mockito
    28m 54s
  5. Mockito Feature Deep-Dive
    37m 49s
  6. Fixture Management & Data Component Testing
    49m 38s

Design Patterns in Java: Structural

by Bryan Hansen

Aug 20, 2015 / 2h 42m

Intermediate • 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 Prerequisites
    4m 24s
  2. Adapter Design Pattern
    20m 42s
  3. Bridge Design Pattern
  4. Composite Pattern
    19m 57s
  5. Decorator Pattern
    19m 13s
  6. Facade Pattern
    20m 22s
  7. Flyweight Pattern
    17m 31s
  8. Proxy Pattern
    29m 25s
  9. Next
    1m 20s

Design Patterns in Java: Creational

by Bryan Hansen

Apr 28, 2015 / 1h 54m

Intermediate • 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 & Prerequisites
    4m 41s
  2. Singleton Pattern
    25m 39s
  3. Builder Pattern
    20m 27s
  4. Prototype Pattern
    18m 47s
  5. Factory Method Pattern
    21m 23s
  6. AbstractFactory Pattern
    22m 53s
  7. What Next?

Design Patterns in Java: Behavioral

by Bryan Hansen

Mar 9, 2016 / 4h 1m

Intermediate • 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 Overview
    1m 35s
  2. Behavioral Design Patterns Introduction
    3m 50s
  3. Chain of Responsibility Pattern
    16m 9s
  4. Command Pattern
    28m 1s
  5. Interpreter Pattern
    19m 16s
  6. Iterator Pattern
    22m 23s
  7. Mediator Pattern
    14m 53s
  8. Memento Pattern
    18m 35s
  9. Observer Pattern
    22m 25s
  10. State Pattern
    28m 9s
  11. Strategy Pattern
    24m 19s
  12. Template Method Pattern
    19m 21s
  13. Visitor Pattern
    21m 40s
  14. What Next?
    1m 12s

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.

Register for FREE. Get your Pluralsight IQ.

You’ll get unlimited access to adaptive skill assessments that help you validate your skills in as little as 5 minutes, and you'll get to see the Pluralsight platform first-hand.

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