Java Programming

    Master enterprise-grade Java — 50 lessons from first program to advanced multithreading and architecture.

    Sign in to track your progress through this course

    👋 New to Java? No experience needed.

    Start with Lesson 1 and learn one of the world's most in-demand programming languages step by step.

    Start Your First Lesson
    1

    Beginner Track

    ✦ Start Here ~2–3 hours

    Write your first Java programs, understand the type system, and learn to control program flow.

    Introduction to Java

    What Java is, how it runs, and how to write and compile your first program

    Start

    Variables and Data Types

    Declare int, String, boolean, double — the types you'll use every day

    Start

    Operators

    Arithmetic, comparison, and logical operators with practical examples

    Start

    Control Flow

    Write decisions in code with if, else if, else, and switch statements

    Start

    Loops

    Repeat actions with for, while, and do-while loops

    Start
    2

    Intermediate Track

    ~3–4 hours

    Write methods, work with arrays and strings, and start building with object-oriented programming.

    Methods

    Write reusable methods, pass parameters, and return values

    Start

    Arrays

    Store and access lists of values with Java arrays

    Start

    Strings

    Manipulate text with String methods, concatenation, and formatting

    Start

    Object-Oriented Programming

    Create classes and objects to model real-world concepts

    Start

    Inheritance

    Extend classes and reuse code through Java inheritance

    Start
    3

    Expert Track

    ~2–3 hours

    Master interfaces, exceptions, the Collections framework, and Java Generics.

    Interfaces and Abstract Classes

    Define contracts with interfaces and share behaviour with abstract classes

    Start

    Exception Handling

    Catch and handle runtime errors with try-catch-finally

    Start

    Collections Framework

    Use ArrayList, HashMap, HashSet, and other collection types effectively

    Start

    Generics

    Write type-safe, reusable code with Java Generics

    Start
    4

    Advanced Track

    ~12–16 hours

    Deep-dive Java for experienced developers — JVM internals, concurrency, design patterns, testing, and enterprise architecture.

    Advanced Java Methods & Overloading Mastery

    Overloading, varargs, method references, and lambda-compatible signatures

    Start

    Deep Dive into Java OOP Design Patterns

    Apply Singleton, Factory, Builder, and Decorator patterns in Java

    Start

    Interfaces, Abstraction & Best Practices

    Default methods, sealed interfaces, and interface-first design

    Start

    Java Inner Classes & Anonymous Classes

    Static, non-static, local, and anonymous inner classes explained

    Start

    Exception Handling Architecture in Large Systems

    Custom exception hierarchies, chained exceptions, and error strategies

    Start

    Java Generics: Bounded Types, Wildcards & Type Erasure

    Upper/lower bounds, ? wildcards, and how type erasure affects runtime

    Start

    Streams API Advanced Operations & Pipelines

    Build complex data pipelines with filter, map, collect, and flatMap

    Start

    Lambda Expressions Deep Dive

    Functional interfaces, method references, and lambda best practices

    Start

    Working with Optionals the Right Way

    Eliminate null pointer exceptions with Optional chains and patterns

    Start

    Java Collections Framework Internals & Performance

    How ArrayList, LinkedList, and HashSet work under the hood

    Start

    Advanced HashMap, TreeMap & LinkedHashMap Behaviors

    Choose the right Map type and understand hashing, ordering, and complexity

    Start

    Multithreading in Java: Threads, Runnables & Executors

    Create and manage threads, use thread pools and ExecutorService

    Start

    Concurrency Utilities: Locks, Semaphores & Latches

    Coordinate threads safely with ReentrantLock, Semaphore, and CountDownLatch

    Start

    CompletableFuture & Asynchronous Programming

    Chain async operations and handle results with CompletableFuture

    Start

    Memory Management & JVM Garbage Collection

    How the JVM allocates memory and which GC algorithms to choose

    Start

    JVM Internals: Classloaders & Bytecode

    How the JVM loads, verifies, and executes bytecode at runtime

    Start

    Reflection API & Dynamic Code Analysis

    Inspect and invoke classes, fields, and methods at runtime

    Start

    Java Annotations: Custom, Built-In & Processing

    Use and create annotations for frameworks, validation, and code generation

    Start

    I/O Streams & NIO2 for High-Performance File Handling

    Read/write files efficiently with NIO2, Paths, and FileChannel

    Start

    Working with Databases using JDBC & Connection Pools

    Query databases with JDBC, prepared statements, and connection pools

    Start

    Building REST APIs in Java (Servlets + HTTP basics)

    Handle HTTP requests and build RESTful endpoints with Java Servlets

    Start

    JSON & XML Parsing with Jackson & JAXB

    Serialise and deserialise JSON with Jackson and XML with JAXB

    Start

    Unit Testing in Java with JUnit & Mockito

    Write tests with JUnit 5, mock dependencies with Mockito

    Start

    Maven & Gradle: Dependency Management at Scale

    Manage dependencies, build lifecycle, and plugins with Maven and Gradle

    Start

    Modular Java (JPMS) Architecture Essentials

    Structure large Java projects with the Java Platform Module System

    Start

    Deploying Java Applications (JAR/WAR)

    Package and deploy Java apps as JARs, WARs, and Docker containers

    Start

    Logging & Monitoring with Log4j2 & SLF4J

    Add structured logging with SLF4J and configure Log4j2 for production

    Start

    Secure Coding Practices for Java Developers

    Prevent injection, insecure deserialization, and common Java vulnerabilities

    Start

    JavaFX for Desktop UI Development

    Build desktop GUI applications with JavaFX scenes, controls, and CSS

    Start

    Networking in Java: Sockets, Clients & Servers

    Build TCP/UDP clients and servers with Java socket programming

    Start

    Working with Threads Pools & Scheduled Executors

    Execute tasks concurrently with ScheduledExecutorService and ForkJoinPool

    Start

    Performance Profiling with VisualVM & JProfiler

    Find bottlenecks and memory leaks using Java profiling tools

    Start

    Microservices with Spring Boot (Intro)

    Build and deploy a simple microservice with Spring Boot and REST

    Start

    Building CLI Tools with Java

    Create command-line applications with argument parsing and output formatting

    Start

    Clean Architecture & Enterprise Patterns in Java

    Structure enterprise Java apps with Clean Architecture and SOLID principles

    Start

    Final Project Ideas

    Guided project ideas to put your Java skills into a real application

    Start

    Cookie & Privacy Settings

    We use cookies to improve your experience, analyze traffic, and show personalized ads. You can manage your preferences below.

    By clicking "Accept All", you consent to our use of cookies for analytics and personalized advertising. You can customize your preferences or reject non-essential cookies.

    Privacy PolicyTerms of Service