Java

Statically typed language for the JVM.

5 subjects · 45 topics · 6 areas

Subjects covering this category

5 subjects
  • Subject · Beginner to Advanced

    Writing Java that compiles, runs, and models a problem with objects.

    • The Language
    • Objects
    • When Things Go Wrong
    15 topics · 131 cardsnot started
  • Subject · Intermediate to Advanced

    Building a REST service with Spring Boot — wired for real data, validated, and fast enough to trust in production.

    • Spring Boot Essentials
    • Building REST APIs
    • Data Access
    12 topics · 77 cardsnot started
  • Subject · Intermediate to Advanced

    Holding data in the right Java collection, and transforming it without writing a loop.

    • Collections
    • Pipelines
    9 topics · 78 cardsnot started
  • Subject · Intermediate to Advanced

    Running Java on more than one thread without corrupting the data underneath.

    • Threads and What They Cost
    • Why Shared State Breaks
    • Locks
    5 topics · 43 cardsnot started
  • Subject · Beginner to Advanced

    Wiring a Java application together with Spring's IoC container, instead of doing it by hand.

    • Why Spring Exists
    • The Bean and the Container
    • Wiring Beans Together
    4 topics · 25 cardsnot started

Spring Boot

16 topics
  • How long a bean lives, and the two moments the container promises to call you at.

    7 cards · 4 qnot started
  • One shape for every error response, wherever it comes from.

    7 cards · 5 qnot started
  • Two different answers to what an object mapped to a row actually is.

    7 cards · 4 qnot started
  • The four states an entity moves through, and the operations that move it.

    7 cards · 5 qnot started
  • What `@Transactional` actually wraps, and the two ways it surprises people.

    7 cards · 4 qnot started
  • Skipping work you've already done, on purpose, and knowing when to throw the answer away.

    7 cards · 5 qnot started
  • What the container actually is, and the five things it does to every bean before it's ready to use.

    6 cards · 4 qnot started
  • What Boot changes about starting a Spring application, and how it decides what to create for you.

    6 cards · 4 qnot started
  • One dependency instead of a dozen, and a server that ships inside the jar.

    6 cards · 4 qnot started
  • Where a setting comes from, and what wins when two sources disagree.

    6 cards · 4 qnot started
  • Turning a URL and a verb into a method call, and a method's return value into a response.

    6 cards · 4 qnot started
  • Refusing a bad request before it reaches your business logic.

    6 cards · 4 qnot started
  • Asking for data without writing the SQL yourself.

    6 cards · 4 qnot started
  • Finding the real bottleneck before optimizing the wrong thing.

    6 cards · 4 qnot started
  • Getting your dependencies handed to you — by constructor, and by name when there's more than one candidate.

    7 cards · 5 qnot started
  • Why Spring hands you your dependencies instead of you building them yourself.

    5 cards · 4 qnot started

JVM

12 topics
  • What the symbols do when the types are not the ones you assumed.

    9 cards · 5 qnot started
  • Deciding once and repeating without copying, and the boundaries that go wrong.

    9 cards · 5 qnot started
  • Text that never changes, and what that costs when you build it in a loop.

    9 cards · 5 qnot started
  • What a variable actually holds, and how to choose the type that holds it.

    9 cards · 5 qnot started
  • Packaging behaviour under a name, and what a method can and cannot change for its caller.

    10 cards · 6 qnot started
  • What javac produces, what java consumes, and why one file runs on every machine.

    6 cards · 5 qnot started
  • Where a value lives, what keeps it alive, and what the two memory errors mean.

    9 cards · 5 qnot started
  • Two threads, one field, and the two different ways it goes wrong.

    9 cards · 5 qnot started
  • One call, several bodies, and which one the JVM picks.

    9 cards · 5 qnot started
  • Type parameters, what the compiler checks, and what is gone by runtime.

    9 cards · 5 qnot started
  • Starting work that runs beside your code, and what each thread takes to exist.

    8 cards · 5 qnot started
  • What synchronized guarantees, on which object, and what it still does not protect.

    9 cards · 5 qnot started
  • Three interfaces, many implementations, and which name to declare a variable with.

    8 cards · 5 qnot started
  • Two lists with the same methods and opposite costs.

    8 cards · 6 qnot started
  • Collections that refuse duplicates, and collections that decide what comes out next.

    8 cards · 5 qnot started
  • What a hash map does with a key, and what it costs when two keys collide.

    9 cards · 5 qnot started
  • A fixed run of values under one name, and the index that throws.

    8 cards · 5 qnot started
  • The three methods every object inherits, and what breaks when two of them disagree.

    8 cards · 6 qnot started
  • Teaching Java an order, for one natural ordering and for many.

    9 cards · 5 qnot started
  • A pipeline over a source, what runs lazily, and what comes out of the end.

    10 cards · 6 qnot started

Java Streams

3 topics
  • A pipeline over a source, what runs lazily, and what comes out of the end.

    10 cards · 6 qnot started
  • Passing behaviour as an argument, and the interface it is compiled against.

    9 cards · 5 qnot started
  • A return type that makes "there might be nothing" impossible to ignore.

    8 cards · 5 qnot started

Generics

1 topic
  • Type parameters, what the compiler checks, and what is gone by runtime.

    9 cards · 5 qnot started

In Java itself

7 topics
  • What a subclass gets from its parent, and the order in which things happen.

    10 cards · 5 qnot started
  • Failing loudly, recovering deliberately, and swallowing neither.

    10 cards · 6 qnot started
  • Turning a description into instances, and what this and static each belong to.

    9 cards · 6 qnot started
  • Handing work to a pool, getting a result back, and shutting it down without losing it.

    9 cards · 5 qnot started
  • Naming a capability without saying how it is met.

    8 cards · 5 qnot started
  • Keeping state where only its owner can reach it.

    8 cards · 5 qnot started
  • Four conditions, three failure names, and the ordering rule that removes one of them.

    8 cards · 5 qnot started