Dev Learning Lab

The labs on this site need JavaScript to run. The same content is written out below.

Dev Learning Lab

Pick a question, click Run, and watch how each concept behaves.

A free lab for learning Java, Spring, JPA, database, networking, and security concepts by picking a question and running it

Fundamentals

Before looking at how a concept behaves in detail, these labs show what the concept looks like in code and what happens without it.

Java

Spring

JPA

Database

Networking

Security

Architecture and operations

Java

From syntax to object-oriented programming, collections, threads, and the JVM. See what happens inside when code runs.

Basic syntax

Classes and objects

Commonly used classes

Exceptions

Generics, enums, and annotations

Collections

Lambdas and streams

Threads and concurrency

JVM

I/O

Spring

The container and dependency injection, AOP and transactions, the path a web request takes, and what Spring Boot does for you.

IoC container and DI

AOP and proxies

Data access and transactions

Web MVC

Spring Boot

Other features

JPA

What it means to store objects in tables: the persistence context, relationships, lazy loading, and when and how many queries are sent.

Getting started

Persistence context

Entity mapping

Relationships

Proxies and fetching

Queries

Web applications and performance

Database

Table design and SQL, indexes and execution plans, transactions and locking, replication and distribution. See how data is stored and read.

Relational model and design

SQL

Indexes and execution plans

Transactions and locking

Storage and recovery

Scaling and distribution

Networking

From typing an address to receiving the response: DNS, TCP, HTTP, TLS, and the machines in between.

The big picture

Addresses and names

Transport layer

HTTP

Secure connections

In front of the web server

Security

Authentication (who you are), authorization (what you are allowed to do), web attacks and defenses, and cryptography.

Authentication

Authorization

Web attacks and defenses

Cryptography

Architecture and operations

Topics for when traffic grows, when a system is split into services, and when you deploy and monitor it.

High traffic

Messaging and asynchronous processing

Splitting into services

Deployment and operations

Observability

Collaboration

Concepts in this lab

What this lab shows

Settings

Code


      
    

Diagram

Run comparison

Try these