Authoritative Java Sources — Cracked Java
Cracked Java console
0
S
// CANONICAL REFERENCES

Authoritative sources

Every source used across all topics, grouped by type. Anything with the green dot is canonical — Javadoc, the JLS, a JEP, or OpenJDK source.

Javadoc

94 of 108

Collection (javadoc)

The root interface; class-level docs define the contract.

docs.oracle.com

Iterable (javadoc)

The for-each interface above Collection.

docs.oracle.com

List (javadoc)

Ordered Collection contract.

docs.oracle.com

ArrayList (javadoc)

Read the class-level notes for the amortized-O(1) add guarantee.

docs.oracle.com

LinkedList (javadoc)

Doubly-linked list; also implements Deque.

docs.oracle.com

Set (javadoc)

Mathematical set contract.

docs.oracle.com

HashSet (javadoc)

Backed by HashMap.

docs.oracle.com

LinkedHashSet (javadoc)

Insertion-ordered HashSet.

docs.oracle.com

TreeSet (javadoc)

Red-black tree NavigableSet.

docs.oracle.com

SortedSet (javadoc)

Adds ordering to Set.

docs.oracle.com

NavigableSet (javadoc)

Adds floor/ceiling/lower/higher.

docs.oracle.com

Map (javadoc)

Map contract — note how it deliberately does not extend Collection.

docs.oracle.com

HashMap (javadoc)

Read the implementation notes for treeification and load factor.

docs.oracle.com

LinkedHashMap (javadoc)

See removeEldestEntry for the LRU recipe.

docs.oracle.com

TreeMap (javadoc)

Red-black tree NavigableMap; log(n) for everything.

docs.oracle.com

SortedMap (javadoc)

The basic sorted-map contract.

docs.oracle.com

NavigableMap (javadoc)

Adds floorKey, ceilingKey, etc.

docs.oracle.com

Object.equals(Object) (javadoc)

The contract: reflexive, symmetric, transitive, consistent, null-handling.

docs.oracle.com

Object.hashCode() (javadoc)

Consistency + equal-implies-equal-hash invariants.

docs.oracle.com

Comparable (javadoc)

Natural ordering contract; consistency-with-equals discussion.

docs.oracle.com

Comparator (javadoc)

External ordering + the comparing/thenComparing combinators.

docs.oracle.com

Queue (javadoc)

The throw/return method matrix lives here.

docs.oracle.com

Deque (javadoc)

Double-ended queue; replaces Stack.

docs.oracle.com

ArrayDeque (javadoc)

Circular-buffer Deque; preferred over Stack and LinkedList.

docs.oracle.com

PriorityQueue (javadoc)

Binary-heap implementation; iterator order is undefined.

docs.oracle.com

Iterator (javadoc)

The fundamental iteration protocol.

docs.oracle.com

ListIterator (javadoc)

Bidirectional iterator + add/set/indices for List.

docs.oracle.com

Spliterator (javadoc)

Splittable iterator that powers parallel streams.

docs.oracle.com

ConcurrentModificationException (javadoc)

Read why detection is best-effort.

docs.oracle.com

ConcurrentHashMap (javadoc)

Read the class-level docs for atomic operation semantics.

docs.oracle.com

ConcurrentMap (javadoc)

Defines atomic putIfAbsent/compute/merge.

docs.oracle.com

BlockingQueue (javadoc)

The put/take/offer/poll method matrix.

docs.oracle.com

ArrayBlockingQueue (javadoc)

Bounded, single-lock array-backed.

docs.oracle.com

LinkedBlockingQueue (javadoc)

Two-lock node-based queue; optionally bounded.

docs.oracle.com

SynchronousQueue (javadoc)

Zero-capacity rendezvous (used by cachedThreadPool).

docs.oracle.com

DelayQueue (javadoc)

Elements become available when their delay expires.

docs.oracle.com

PriorityBlockingQueue (javadoc)

Unbounded heap with blocking take semantics.

docs.oracle.com

LinkedTransferQueue (javadoc)

Lock-free queue with transfer() for handoff.

docs.oracle.com

ThreadPoolExecutor (javadoc)

See which queue each Executors factory uses.

docs.oracle.com

CopyOnWriteArrayList (javadoc)

Snapshot iterator + array clone on every write.

docs.oracle.com

CopyOnWriteArraySet (javadoc)

Set built on the same copy-on-write primitive.

docs.oracle.com

ConcurrentSkipListMap (javadoc)

Lock-free concurrent NavigableMap.

docs.oracle.com

ConcurrentLinkedQueue (javadoc)

Michael & Scott lock-free queue.

docs.oracle.com

ConcurrentLinkedDeque (javadoc)

Lock-free double-ended sibling of ConcurrentLinkedQueue.

docs.oracle.com

Collections (javadoc)

Static helpers: sort, binarySearch, unmodifiable*/synchronized* wrappers.

docs.oracle.com

Arrays (javadoc)

Companion to Collections for array operations.

docs.oracle.com

SequencedCollection (javadoc)

Adds getFirst/getLast/addFirst/addLast/reversed to ordered collections.

docs.oracle.com

SequencedSet (javadoc)

SequencedCollection with Set semantics.

docs.oracle.com

SequencedMap (javadoc)

Sequenced equivalent for Map (firstEntry / lastEntry / reversed).

docs.oracle.com

Collectors (javadoc)

toList vs toUnmodifiableList vs the new Stream.toList.

docs.oracle.com

Stream (javadoc)

Stream.toList() is unmodifiable since Java 16.

docs.oracle.com

Object.toString (Javadoc)

The minimal contract and the case for overriding it.

docs.oracle.com

Cloneable (Javadoc)

Read to understand why you should never use it.

docs.oracle.com

Thread (javadoc)

Lifecycle, daemon, interrupt, join — read the class-level notes.

docs.oracle.com

Thread.State (javadoc)

The six thread states: NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED.

docs.oracle.com

Runnable (javadoc)

The functional task interface.

docs.oracle.com

Object.wait / notify / notifyAll (javadoc)

Contract for the wait set and why wait() must be looped.

docs.oracle.com

java.util.concurrent.locks (package javadoc)

Overview of the Lock framework.

docs.oracle.com

ReentrantLock (javadoc)

tryLock, fairness, lockInterruptibly — read the class notes.

docs.oracle.com

ReentrantReadWriteLock (javadoc)

Read/write separation and downgrade rules.

docs.oracle.com

StampedLock (javadoc)

Optimistic-read API and its caveats.

docs.oracle.com

Condition (javadoc)

Multiple wait-sets per lock; await/signal.

docs.oracle.com

AbstractQueuedSynchronizer (javadoc)

The CLH-queue framework behind locks and synchronizers.

docs.oracle.com

java.util.concurrent.atomic (package javadoc)

The package overview describes CAS and the atomic toolkit.

docs.oracle.com

AtomicInteger (javadoc)

compareAndSet, getAndIncrement, accumulate/update methods.

docs.oracle.com

LongAdder (javadoc)

Striped counters for high write contention.

docs.oracle.com

AtomicStampedReference (javadoc)

The standard fix for the ABA problem.

docs.oracle.com

VarHandle (javadoc)

The supported replacement for sun.misc.Unsafe memory ops.

docs.oracle.com

Executors (javadoc)

Factory methods and exactly which pools/queues they build.

docs.oracle.com

ExecutorService (javadoc)

submit, shutdown, awaitTermination, invokeAll.

docs.oracle.com

RejectedExecutionHandler (javadoc)

AbortPolicy, CallerRunsPolicy, DiscardPolicy, DiscardOldestPolicy.

docs.oracle.com

CompletableFuture (javadoc)

The full composition API — thenApply/thenCompose/thenCombine/handle.

docs.oracle.com

Future (javadoc)

get, cancel, isDone — and the blocking limitation.

docs.oracle.com

Callable (javadoc)

A task that returns a result and may throw.

docs.oracle.com

CompletionStage (javadoc)

The interface defining the dependent-stage combinators.

docs.oracle.com

CountDownLatch (javadoc)

One-shot latch; await until count reaches zero.

docs.oracle.com

CyclicBarrier (javadoc)

Reusable barrier with an optional barrier action.

docs.oracle.com

Semaphore (javadoc)

Permit-based access control; bounded resource pools.

docs.oracle.com

Phaser (javadoc)

Dynamic-party, multi-phase barrier.

docs.oracle.com

Exchanger (javadoc)

A rendezvous point for two threads to swap objects.

docs.oracle.com

ThreadMXBean.findDeadlockedThreads (javadoc)

Programmatic deadlock detection at runtime.

docs.oracle.com

ThreadLocal (javadoc)

Per-thread variables; read the notes on lifecycle and pooled threads.

docs.oracle.com

ForkJoinPool (javadoc)

Work-stealing pool, the common pool, and managed blocking.

docs.oracle.com

ForkJoinTask (javadoc)

fork/join/compute semantics.

docs.oracle.com

Stream — Parallelism (javadoc)

When and how streams go parallel, and the constraints.

docs.oracle.com

Thread (javadoc) — Virtual Threads

Thread.ofVirtual, startVirtualThread, and the platform/virtual distinction.

docs.oracle.com

java.util Javadoc (complexity notes)

Implementation notes document the cost of each operation.

docs.oracle.com

StringBuilder (Javadoc)

Mutable string buffer; the answer to String immutability.

docs.oracle.com

Arrays.sort (Javadoc)

Dual-Pivot Quicksort for primitives, Timsort for objects.

docs.oracle.com

Arrays.binarySearch (Javadoc)

Binary search over a sorted primitive array.

docs.oracle.com

Integer (Javadoc)

bitCount, numberOfTrailingZeros, highestOneBit, and friends.

docs.oracle.com

BitSet (Javadoc)

Arbitrary-length bit arrays.

docs.oracle.com

java.util.concurrent (Javadoc)

Locks, atomics, concurrent collections, and executors.

docs.oracle.com

ScheduledExecutorService (Javadoc)

JDK scheduled task execution.

docs.oracle.com

Spec

19 of 20

OpenJDK source: ArrayList.java

See grow(int) for the 1.5× growth factor.

github.com

OpenJDK source: LinkedList.java

Node<E> doubly-linked structure.

github.com

OpenJDK source: HashSet.java

A thin wrapper over HashMap.

github.com

OpenJDK source: HashMap.java

See hash(), putVal, resize, treeifyBin — the heart of the framework.

github.com

OpenJDK source: LinkedHashMap.java

Doubly-linked Entry threaded through the table.

github.com

OpenJDK source: TreeMap.java

Red-black tree implementation.

github.com

OpenJDK source: ConcurrentHashMap.java

The CAS-based implementation; see the overview comment.

github.com

JLS Chapter 8: Classes

Class declarations, constructors, instance initialization order — the formal spec.

docs.oracle.com

JLS §8.4.8: Inheritance, Overriding, and Hiding

Formal override rules — read this for senior interviews.

docs.oracle.com

JLS Chapter 9: Interfaces

Interface declarations, default and private methods, functional interfaces.

docs.oracle.com

JLS §15.12: Method Invocation Expressions

Dispatch rules: static vs dynamic binding, with the formal resolution algorithm.

docs.oracle.com

JLS §6.6: Access Control

Formal access-control rules including the cross-package protected nuance.

docs.oracle.com

JLS §8.1.3: Inner Classes and Enclosing Instances

Formal rules for enclosing instances, captured variables, and synthetic refs.

docs.oracle.com

JLS §17.1 Synchronization

The language spec for monitor entry/exit.

docs.oracle.com

JLS Chapter 17: Threads and Locks

The Java Memory Model itself — happens-before, volatile, final-field semantics.

docs.oracle.com

JLS §17.4 Memory Model

Formal definition of happens-before and the actions ordering.

docs.oracle.com

JLS §17.5 final Field Semantics

Why correctly-constructed immutables are safe to publish via a data race.

docs.oracle.com

Java Language Spec — volatile (JLS §8.3.1.4)

The volatile modifier definition.

docs.oracle.com

Reactive Streams Specification

The Publisher/Subscriber/Subscription contract underlying Reactor.

reactive-streams.org

JEP

10 of 11

Official Docs

128 of 135

Collections Framework Overview

The canonical narrative of why the framework exists and what it ships.

docs.oracle.com

Collections Reference (annotated outline)

Annotated tree of every interface and implementation in java.util.

docs.oracle.com

Collections Design FAQ

Authors explain the controversial design choices (why Map is separate, optional ops).

docs.oracle.com

java.util.concurrent package overview

Memory-visibility guarantees that apply to every concurrent collection.

docs.oracle.com

Records (Java 25 Language Guide)

The modern immutable-by-default data carrier.

docs.oracle.com

Sealed Classes (Java 25 Language Guide)

How `permits` enables exhaustive switch checking and controlled extension.

docs.oracle.com

Pattern Matching for instanceof (Java 25 Language Guide)

The cast-eliminating instanceof pattern and its scope rules.

docs.oracle.com

Oracle: Virtual Threads (Core Libraries Guide)

The user guide covering carriers, pinning diagnosis, and migration.

docs.oracle.com

Tutorial: The SQL Language

Canonical narrative intro to relations, queries, and joins in PostgreSQL.

postgresql.org

Queries

FROM/WHERE/GROUP BY/HAVING/SELECT semantics and logical processing order.

postgresql.org

Constraints

Primary keys, unique constraints, foreign keys, and ON DELETE actions.

postgresql.org

Comparison Functions and Operators

How NULL behaves in comparisons, IS DISTINCT FROM, and three-valued logic.

postgresql.org

Data Definition

Tables, columns, constraints, and inheritance — the schema-design reference.

postgresql.org

UUID Type

UUID storage; pair with gen_random_uuid() and v7 ordering discussion.

postgresql.org

Data Types

The full catalog of built-in types and their storage characteristics.

postgresql.org

Date/Time Types

TIMESTAMP vs TIMESTAMPTZ, DATE, TIME, INTERVAL, and time-zone handling.

postgresql.org

JSON Types

JSON vs JSONB storage and when to choose each.

postgresql.org

Arrays

Array declaration, indexing, and containment operators.

postgresql.org

Indexes

The umbrella chapter: when indexes help, their cost, and maintenance.

postgresql.org

Index Types

B-tree, Hash, GiST, SP-GiST, GIN, and BRIN and what each is for.

postgresql.org

Multicolumn Indexes

Composite indexes and the left-prefix rule.

postgresql.org

Index-Only Scans and Covering Indexes

INCLUDE columns and when an index-only scan is possible.

postgresql.org

Partial Indexes

Indexing a subset of rows for big wins on skewed predicates.

postgresql.org

Indexes on Expressions

Functional indexes such as LOWER(email).

postgresql.org

Using EXPLAIN

Reading plan nodes, costs, rows, actual time, loops, and BUFFERS.

postgresql.org

Planner Statistics

How ANALYZE feeds selectivity estimates the planner relies on.

postgresql.org

pg_stat_statements

The extension for finding slow and frequent queries in production.

postgresql.org

Query Planning Configuration

random_page_cost and the GUCs that steer planner choices.

postgresql.org

Tutorial: Transactions

Narrative intro to BEGIN/COMMIT and atomicity.

postgresql.org

Transaction Isolation

The four isolation levels, the anomalies, and SSI Serializable.

postgresql.org

Concurrency Control (MVCC)

How MVCC removes read/write blocking; xmin/xmax row versions.

postgresql.org

Explicit Locking

Row-level lock modes and FOR UPDATE / FOR SHARE semantics.

postgresql.org

Routine Vacuuming

VACUUM, autovacuum, and transaction-ID wraparound prevention.

postgresql.org

pg_locks View

The system view for investigating live lock contention.

postgresql.org

Monitoring Statistics

pg_stat_activity and the cumulative statistics for diagnosing blocking.

postgresql.org

Tutorial: Window Functions

Gentle intro to PARTITION BY, frames, and ranking.

postgresql.org

Window Functions

Reference for ROW_NUMBER, RANK, LAG/LEAD, and frame clauses.

postgresql.org

WITH Queries (CTEs)

CTE materialization rules (the 12+ inlining change) and recursive CTEs.

postgresql.org

LATERAL Subqueries

How LATERAL lets a subquery reference earlier FROM items.

postgresql.org

JSON Functions and Operators

The -> / ->> / #> operators, jsonb_set, and JSONPath.

postgresql.org

GIN Indexes

Indexing JSONB with GIN and jsonb_path_ops.

postgresql.org

Full Text Search

The umbrella chapter for tsvector/tsquery search.

postgresql.org

Full Text Search: Introduction

Concepts: documents, lexemes, dictionaries, and the @@ match operator.

postgresql.org

Controlling Text Search

Parsing, ranking with ts_rank/ts_rank_cd, and highlighting.

postgresql.org

Table Partitioning

Range/List/Hash partitioning, pruning, and live attach/detach.

postgresql.org

Declarative Partitioning

The native partitioning syntax introduced in PostgreSQL 10.

postgresql.org

High Availability, Load Balancing, and Replication

Physical vs logical, sync vs async, hot standby, and failover.

postgresql.org

Write-Ahead Logging (WAL)

How the WAL underpins durability and replication.

postgresql.org

Replication Configuration

Streaming replication GUCs, synchronous_standby_names, and slots.

postgresql.org

Logical Replication

Publications and subscriptions for row-level replication.

postgresql.org

PgBouncer Usage

Session/transaction/statement pooling modes and their trade-offs.

pgbouncer.org

Backup and Restore

Logical (pg_dump) vs physical (file-system/base) backup strategies.

postgresql.org

Continuous Archiving and PITR

archive_command, restore_command, and point-in-time recovery.

postgresql.org

pg_dump

Reference for the logical-backup tool and its formats.

postgresql.org

pg_basebackup

Reference for taking a physical base backup of a cluster.

postgresql.org

Resource Consumption Configuration

shared_buffers, work_mem, maintenance_work_mem, effective_cache_size.

postgresql.org

Automatic Vacuuming Configuration

Tuning autovacuum so it keeps up with write-heavy tables.

postgresql.org

auto_explain

Automatically logging execution plans of slow statements.

postgresql.org

CREATE FUNCTION

Function definition, languages, volatility, and security context.

postgresql.org

CREATE PROCEDURE

Procedures and how they differ from functions (transaction control).

postgresql.org

PL/pgSQL

The procedural language used for most stored logic and triggers.

postgresql.org

Trigger Definition

BEFORE/AFTER/INSTEAD OF and statement vs row-level triggers.

postgresql.org

Function Volatility Categories

IMMUTABLE vs STABLE vs VOLATILE and how the planner uses them.

postgresql.org

The IoC Container

The foundational chapter: beans, the container, and dependency injection.

docs.spring.io

Dependencies

Constructor vs setter injection and dependency resolution.

docs.spring.io

Java-based Container Configuration

@Configuration, @Bean, and the CGLIB proxy / inter-bean reference behavior.

docs.spring.io

Classpath Scanning and Managed Components

@ComponentScan and the stereotype annotations.

docs.spring.io

Bean Scopes

singleton, prototype, request, session, application, websocket scopes.

docs.spring.io

Customizing the Nature of a Bean

Lifecycle callbacks: @PostConstruct, InitializingBean, init-method.

docs.spring.io

Container Extension Points

BeanPostProcessor and BeanFactoryPostProcessor mechanics.

docs.spring.io

Using @Autowired

How @Autowired resolves by type/name/qualifier, and ObjectProvider.

docs.spring.io

Autowiring Collaborators

@Primary, @Qualifier, collection injection, and ambiguity resolution.

docs.spring.io

Auto-configuration

How Boot discovers and applies auto-configuration classes.

docs.spring.io

Externalized Configuration

Property sources, precedence, @ConfigurationProperties vs @Value.

docs.spring.io

Profiles

@Profile and spring.profiles.active activation rules.

docs.spring.io

Developing Auto-configuration

Writing your own starter and @Conditional classes.

docs.spring.io

Spring Web MVC

The servlet-stack web framework overview.

docs.spring.io

Annotated Controllers

@RequestMapping, argument resolvers, and return values.

docs.spring.io

DispatcherServlet

The request-processing pipeline and special beans.

docs.spring.io

Exception Handling (MVC)

@ExceptionHandler, @ControllerAdvice, and ResponseStatusException.

docs.spring.io

Spring Data JPA Reference

The umbrella reference for repositories and JPA integration.

docs.spring.io

JPA Repositories

Entities, persistence context, and the JPA programming model.

docs.spring.io

Query Methods

Derived queries, @Query, pagination, and projections.

docs.spring.io

Transaction Management

Where @Transactional propagation and isolation are defined.

docs.spring.io

Declarative Transaction Management

How the @Transactional AOP proxy is built and applied.

docs.spring.io

@Transactional Settings

Propagation, isolation, rollbackFor, and readOnly semantics.

docs.spring.io

Spring Security Reference

The entry point for the whole security framework.

docs.spring.io

Servlet Security Architecture

The SecurityFilterChain and how filters compose.

docs.spring.io

Authentication

UserDetailsService, AuthenticationManager, and password encoders.

docs.spring.io

Authorization

Method security and request-level authorization.

docs.spring.io

OAuth2

Client, resource server, and JWT support.

docs.spring.io

Aspect Oriented Programming with Spring

Pointcuts, advice, and the @AspectJ programming model.

docs.spring.io

Proxying Mechanisms

JDK dynamic proxies vs CGLIB and the self-invocation limitation.

docs.spring.io

Spring AOP APIs

The lower-level ProxyFactory and Advisor APIs.

docs.spring.io

Spring Framework source on GitHub

Read the actual proxy and advice implementations.

github.com

Standard and Custom Events

ApplicationEvent, @EventListener, and async publishing.

docs.spring.io

Transaction-bound Events

@TransactionalEventListener and its commit phases.

docs.spring.io

Spring Modulith Reference

How events drive decoupled module-to-module communication.

docs.spring.io

Cache Abstraction

@Cacheable/@CachePut/@CacheEvict, key generation, condition/unless.

docs.spring.io

Caching (Spring Boot)

Auto-configured cache providers: Caffeine, Redis, and others.

docs.spring.io

Task Execution and Scheduling

@Async, @Scheduled, TaskExecutor, and the executor abstraction.

docs.spring.io

Task Execution and Scheduling (Spring Boot)

Boot auto-config for executors and virtual-thread enablement.

docs.spring.io

Spring WebFlux

The reactive web stack built on Reactor.

docs.spring.io

Web on Reactive Stack

Overview of the reactive runtime and APIs.

docs.spring.io

Project Reactor Reference

Mono/Flux, operators, and backpressure.

projectreactor.io

Spring Boot Actuator

Production-ready endpoints, health, and metrics.

docs.spring.io

Actuator Endpoints

The full endpoint catalog and how to secure them.

docs.spring.io

Observability

Micrometer metrics and tracing integration.

docs.spring.io

Micrometer Documentation

Counters, gauges, timers, and the meter registry model.

docs.micrometer.io

Testing (Spring Boot)

@SpringBootTest, slice tests, and test utilities.

docs.spring.io

Testing Spring Boot Applications

@MockBean, MockMvc/WebTestClient, and context configuration.

docs.spring.io

Testing (Spring Framework)

The TestContext framework and context caching.

docs.spring.io

Testcontainers for Java

Real dependencies in disposable containers for integration tests.

java.testcontainers.org

Spring Boot Reference

The Boot 3.x reference root: baseline, features, and migration.

docs.spring.io

REST Clients

RestClient, @HttpExchange interface clients, and RestTemplate status.

docs.spring.io

Spring Boot 3.0 Migration Guide

javax→jakarta, removed APIs, and config migration.

github.com

Spring Boot source on GitHub

Authoritative source for auto-config and Boot internals.

github.com

Apache Log4j 2 Architecture

Log4j 2 architecture: loggers, appenders, layouts, filters.

logging.apache.org

Redis — Patterns

Official Redis docs covering common usage patterns like rate limiting and distributed locks.

redis.io

AWS — Caching Overview

AWS overview of caching concepts, strategies, and managed caching services.

aws.amazon.com

Apache Kafka Documentation

Official Kafka docs covering its distributed log architecture, producers, consumers, and streams.

kafka.apache.org

RabbitMQ Documentation

Official RabbitMQ docs covering message brokering, exchanges, queues, and routing.

rabbitmq.com

gRPC Documentation

Official gRPC docs covering its RPC framework, protobuf, and streaming over HTTP/2.

grpc.io

GraphQL — Learn

Official GraphQL learning guide covering schemas, queries, mutations, and resolvers.

graphql.org

NGINX — What Is Load Balancing?

Glossary entry explaining load balancing concepts and common distribution algorithms.

f5.com

Envoy — Load Balancing

Official Envoy docs detailing its load-balancing policies and health-checking model.

envoyproxy.io

OpenTelemetry Documentation

Official docs for the OpenTelemetry standard for traces, metrics, and logs instrumentation.

opentelemetry.io

H3 — Uber Geospatial Index

Official docs for H3, Uber’s hexagonal hierarchical geospatial indexing system.

h3geo.org

Tutorial

44 of 48

Tutorial: Introduction to Collections

Friendly narrative intro to the framework.

docs.oracle.com

Tutorial: The List Interface

Narrative description of List semantics.

docs.oracle.com

Tutorial: List Implementations

Compares ArrayList vs LinkedList trade-offs.

docs.oracle.com

Tutorial: The Set Interface

Narrative intro to Set semantics.

docs.oracle.com

Tutorial: Set Implementations

Compares HashSet / LinkedHashSet / TreeSet trade-offs.

docs.oracle.com

Tutorial: The Map Interface

Narrative intro to Map.

docs.oracle.com

Tutorial: Map Implementations

Compares HashMap / LinkedHashMap / TreeMap.

docs.oracle.com

Tutorial: The SortedMap Interface

Narrative intro to sorted-map semantics.

docs.oracle.com

Tutorial: Object Ordering

Narrative coverage of equals/hashCode in collection context.

docs.oracle.com

Tutorial: The Queue Interface

Narrative intro to Queue.

docs.oracle.com

Tutorial: The Deque Interface

Narrative intro to Deque.

docs.oracle.com

Tutorial: Algorithms

Narrative on the algorithms in Collections.

docs.oracle.com

Tutorial: Wrapper Implementations

Explains unmodifiable, synchronized and checked wrappers.

docs.oracle.com

Object-Oriented Programming Concepts (Tutorial)

Canonical "what is an object/class/inheritance/interface" trail.

docs.oracle.com

Learning the Java Language trail

Parent trail covering all four pillars in narrative form.

docs.oracle.com

Classes and Objects (Tutorial)

Constructors, methods, `this`, nested classes, enums, records.

docs.oracle.com

Defining Methods (Tutorial)

Method declaration syntax, varargs, and overloading rules.

docs.oracle.com

Passing Information to a Method (Tutorial)

Pass-by-value semantics — a perennial interview question.

docs.oracle.com

Inheritance (Tutorial)

Subclassing, the `Object` superclass, and member access across hierarchies.

docs.oracle.com

Overriding and Hiding Methods (Tutorial)

Overriding vs hiding (static methods) — a classic trick question.

docs.oracle.com

Using the Keyword super (Tutorial)

How to call a superclass constructor or invoke a hidden parent method.

docs.oracle.com

Interfaces (Tutorial)

Declaring interfaces, implementing them, and using them as types.

docs.oracle.com

Abstract Methods and Classes (Tutorial)

When an abstract base class is the right call over an interface.

docs.oracle.com

Default Methods (Tutorial)

Java 8+; diamond resolution is a favorite interview topic.

docs.oracle.com

Polymorphism (Tutorial)

Dynamic dispatch with a `Bicycle` hierarchy example.

docs.oracle.com

Controlling Access to Members of a Class (Tutorial)

public / protected / package-private / private — the canonical reference.

docs.oracle.com

Object as a Superclass (Tutorial)

Overview of equals, hashCode, toString, clone, finalize on Object.

docs.oracle.com

Nested Classes (Tutorial)

Static nested, inner, local, anonymous — what each can capture.

docs.oracle.com

Tutorial: Defining and Starting a Thread

Runnable vs subclassing Thread, start vs run.

docs.oracle.com

Tutorial: Pausing Execution with Sleep

sleep() semantics and interruption.

docs.oracle.com

Tutorial: Interrupts

The cooperative interruption mechanism.

docs.oracle.com

Tutorial: Synchronization

Intrinsic locks, synchronized methods and statements.

docs.oracle.com

Tutorial: Intrinsic Locks and Synchronization

Monitors, reentrancy, the lock behind every object.

docs.oracle.com

Tutorial: Guarded Blocks (wait/notify)

The canonical wait()/notifyAll() producer-consumer pattern.

docs.oracle.com

Tutorial: Executors

Executor, ExecutorService, thread pools — the narrative intro.

docs.oracle.com

Tutorial: Liveness (Deadlock, Starvation, Livelock)

The official definitions and examples.

docs.oracle.com

Tutorial: Deadlock

The classic two-lock deadlock example.

docs.oracle.com

Tutorial: Starvation and Livelock

How greedy threads starve others and how livelock differs.

docs.oracle.com

Tutorial: Immutable Objects

A strategy for defining immutable, inherently thread-safe objects.

docs.oracle.com

Tutorial: Fork/Join

Divide-and-conquer with RecursiveTask/RecursiveAction.

docs.oracle.com

Official Spring Guides

Short, runnable getting-started guides maintained by the Spring team.

spring.io

MIT 6.006 Introduction to Algorithms (OCW)

Full lecture notes and videos on core algorithms.

ocw.mit.edu

Princeton COS226 (Sedgewick)

Algorithms-and-data-structures course materials.

cs.princeton.edu

Stanford CS161

Design and analysis of algorithms.

web.stanford.edu

Article

80 of 115

SOLID (Wikipedia)

Accurate overview of each principle with code examples.

en.wikipedia.org

Clean Coder Blog (Robert C. Martin)

Canonical SRP/OCP/LSP/ISP/DIP articles by Uncle Bob himself.

blog.cleancoder.com

Refactoring.Guru — Creational Patterns

Best free visual explanations of Singleton, Factory, Builder, Prototype.

refactoring.guru

Java Design Patterns (GitHub)

Runnable Java implementations of every major pattern.

github.com

Refactoring.Guru — Structural Patterns

Adapter, Decorator, Proxy, Facade, Composite with diagrams.

refactoring.guru

Baeldung Design Patterns Series

Pragmatic Java examples for every structural pattern, free.

baeldung.com

Refactoring.Guru — Behavioral Patterns

Strategy, Observer, Command, State, Chain of Responsibility, etc.

refactoring.guru

Low-Level Design Primer (GitHub)

Free open-source LLD problem set with worked solutions.

github.com

Grokking the Object-Oriented Design Interview

Widely used for FAANG OOD rounds (paid course).

designgurus.io

LeetCode — Object-Oriented Design Problems

Design parking lot, Twitter, LRU cache — the classic LLD warm-up problems.

leetcode.com

JSR-133 (JMM) FAQ — Jeremy Manson & Brian Goetz

The classic plain-English explanation of the rewritten memory model and double-checked locking.

cs.umd.edu

Big-O Cheat Sheet

Quick-reference table of common data-structure/algorithm complexities.

bigocheatsheet.com

Two Pointers (LeetCode tag)

Curated practice problems for the two-pointers pattern.

leetcode.com

Sliding Window (LeetCode tag)

Curated practice problems for the sliding-window pattern.

leetcode.com

Linked List (LeetCode tag)

Curated practice problems for the linked-list pattern.

leetcode.com

Stack (LeetCode tag)

Curated practice problems for the stack pattern.

leetcode.com

Monotonic Stack (LeetCode tag)

Curated practice problems for the monotonic-stack pattern.

leetcode.com

Hash Table (LeetCode tag)

Curated practice problems for the hash-table pattern.

leetcode.com

Tree (LeetCode tag)

Curated practice problems for the tree pattern.

leetcode.com

Binary Tree (LeetCode tag)

Curated practice problems for the binary-tree pattern.

leetcode.com

Heap / Priority Queue (LeetCode tag)

Curated practice problems for the heap/priority-queue pattern.

leetcode.com

Trie (LeetCode tag)

Curated practice problems for the trie pattern.

leetcode.com

CP-Algorithms

Community-maintained, high-quality algorithm reference.

cp-algorithms.com

Graph (LeetCode tag)

Curated practice problems for the graph pattern.

leetcode.com

Breadth-First Search (LeetCode tag)

Curated practice problems for the breadth-first-search pattern.

leetcode.com

Depth-First Search (LeetCode tag)

Curated practice problems for the depth-first-search pattern.

leetcode.com

Shortest Path (LeetCode tag)

Curated practice problems for the shortest-path pattern.

leetcode.com

Union Find (LeetCode tag)

Curated practice problems for the union-find pattern.

leetcode.com

Timsort design notes (listsort.txt)

Tim Peters' original write-up of the adaptive merge sort.

github.com

Binary Search (LeetCode tag)

Curated practice problems for the binary-search pattern.

leetcode.com

Backtracking (LeetCode tag)

Curated practice problems for the backtracking pattern.

leetcode.com

Dynamic Programming (LeetCode tag)

Curated practice problems for the dynamic-programming pattern.

leetcode.com

Greedy (LeetCode tag)

Curated practice problems for the greedy pattern.

leetcode.com

Bit Manipulation (LeetCode tag)

Curated practice problems for the bit-manipulation pattern.

leetcode.com

Math (LeetCode tag)

Curated practice problems for the math pattern.

leetcode.com

Tech Interview Handbook — Algorithms Study Cheatsheet

Pattern-to-technique mapping for interview problems.

techinterviewhandbook.org

LeetCode Study Guide (Discuss)

Community study guides organized by topic and pattern.

leetcode.com

VisuAlgo — algorithm visualizations

Interactive visualizations of data structures and algorithms.

visualgo.net

awesome-low-level-design (ashishps1)

Curated LLD problem set with worked Java solutions.

github.com

Refactoring.Guru — Design Patterns

The clearest catalog of GoF patterns with diagrams and Java examples.

refactoring.guru

workat.tech — Machine Coding

Practice platform and rubric for machine-coding rounds.

workat.tech

Refactoring.Guru — Pattern Catalog

Index of all 23 GoF patterns grouped by intent.

refactoring.guru

Parking Lot — awesome-low-level-design

Worked Java reference solution for the parking-lot problem.

github.com

Elevator System — awesome-low-level-design

Worked Java reference solution for the elevator-system problem.

github.com

Library Management — awesome-low-level-design

Worked Java reference solution for the library-management problem.

github.com

State Pattern — Refactoring.Guru

The State pattern, the backbone of the vending-machine design.

refactoring.guru

Vending Machine — awesome-low-level-design

Worked Java reference solution for the vending-machine problem.

github.com

ATM — awesome-low-level-design

Worked Java reference solution for the ATM problem.

github.com

Movie Booking — awesome-low-level-design

Worked Java reference solution for the movie-ticket-booking-system problem.

github.com

Ride Sharing — awesome-low-level-design

Worked Java reference solution for the ride-sharing-service problem.

github.com

Token bucket (rate-limiting algorithm)

The token-bucket algorithm that underpins most rate-limiter implementations.

en.wikipedia.org

LRU Cache (LeetCode)

The canonical O(1) cache-design problem.

leetcode.com

LFU Cache (LeetCode)

The canonical O(1) cache-design problem.

leetcode.com

Publish–subscribe pattern

The pub/sub model behind multi-channel notification fan-out.

en.wikipedia.org

Design In-Memory File System (LeetCode)

In-memory file-system design problem.

leetcode.com

The System Design Primer (donnemartin)

Popular open-source primer organizing core system-design concepts and interview prep.

github.com

System Design (Karan Pratap Singh)

Concise open-source course covering system-design fundamentals and patterns.

github.com

CAP Twelve Years Later (Eric Brewer)

Brewer revisits the CAP theorem and clarifies common misconceptions about its tradeoffs.

infoq.com

Jepsen — Consistency Models

Reference map of distributed-systems consistency models and their relationships.

jepsen.io

Amazon Dynamo paper (2007)

The foundational leaderless-replication / consistent-hashing paper.

allthingsdistributed.com

Consistent Hashing (Wikipedia)

Overview of consistent hashing for distributing keys across a changing set of nodes.

en.wikipedia.org

Confluent — Exactly-Once Semantics

Explains how Kafka achieves exactly-once delivery via idempotent producers and transactions.

confluent.io

MongoDB — NoSQL Explained

Vendor explainer introducing NoSQL database types and when to use them over relational stores.

mongodb.com

AWS — NoSQL

Vendor explainer of NoSQL database categories and their use cases.

aws.amazon.com

REST API Tutorial

Tutorial site explaining REST principles, resources, and best practices for HTTP APIs.

restfulapi.net

Cloudflare — Counting Things

Cloudflare engineering post on counting at scale, underpinning distributed rate limiting.

blog.cloudflare.com

microservices.io

Chris Richardson’s catalog of microservices patterns and their tradeoffs.

microservices.io

Martin Fowler — Microservices

Foundational article defining the microservices architectural style and its characteristics.

martinfowler.com

ScyllaDB — LSM-tree glossary

Glossary entry explaining log-structured merge-trees used by write-optimized storage engines.

scylladb.com

Latency Numbers Every Programmer Should Know

Reference list of typical latencies for memory, disk, and network operations.

gist.github.com

Cloudflare — What is a CDN?

Explains how content delivery networks cache and serve content from edge locations.

cloudflare.com

X (Twitter) Engineering Blog

X engineering blog with posts on timeline, feed, and large-scale infrastructure.

blog.x.com

Uber Engineering Blog

Uber engineering blog with posts on dispatch, geospatial, and large-scale systems.

uber.com

Netflix Tech Blog

Netflix engineering blog covering streaming, encoding, and large-scale distributed systems.

netflixtechblog.com

Airbnb — Airflow

Airbnb’s introduction to Airflow as a platform for authoring and scheduling workflows.

medium.com

Operational Transformation (Wikipedia)

Overview of operational transformation for real-time collaborative editing.

en.wikipedia.org

CRDT.tech

Curated resource hub on conflict-free replicated data types for collaborative and distributed apps.

crdt.tech

Stripe — Designing robust and predictable APIs with idempotency

Stripe’s guide to using idempotency keys for safe retries of payment API requests.

stripe.com

Uber — Payments Platform

Uber engineering post on the architecture of its large-scale payments platform.

uber.com

Hello Interview

Interview-prep platform with structured system-design walkthroughs and practice.

hellointerview.com

Book

24 of 88

Effective Java — Item 10 & 11 (Bloch)

The canonical treatment of overriding equals/hashCode correctly.

oreilly.com

Java Concurrency in Practice — Chapter 5 (Goetz)

Building blocks: concurrent collections.

jcip.net

Clean Architecture (Robert C. Martin)

Book-length treatment of SOLID and the architectural principles built on it.

oreilly.com

Head First Design Patterns (Freeman & Robson)

The friendliest path into GoF — see chapters on Factory and Singleton.

oreilly.com

Design Patterns: Elements of Reusable OO Software (GoF)

The original; dense but canonical reference.

oreilly.com

Effective Java, 3rd Edition (Bloch) — Concurrency chapter

Items 78–84: synchronization, executors, lazy initialization, and the JMM.

oreilly.com

PostgreSQL: Up and Running (3rd ed.), Obe & Hsu

Practical PostgreSQL from the ground up; chapters on SQL basics.

oreilly.com

The Art of PostgreSQL, Dimitri Fontaine

Schema design and modeling chapters written by a Postgres committer.

theartofpostgresql.com

Database Internals, Alex Petrov

B-tree storage internals that explain why monotonic keys matter.

databass.dev

PostgreSQL 14 Internals, Egor Rogov

Free, deeply authoritative coverage of access methods and index internals.

postgrespro.com

Designing Data-Intensive Applications, Kleppmann

Chapter 7 on transactions and isolation anomalies across systems.

dataintensive.net

Spring in Action (6th ed.), Craig Walls

Approachable, example-driven coverage of the core container.

manning.com

Spring Security in Action (2nd ed.), Laurentiu Spilca

The definitive practical book on Spring Security.

manning.com

Pro Spring 6

In-depth treatment of Spring internals including the AOP machinery.

link.springer.com

Spring Microservices in Action (2nd ed.), John Carnell

Patterns for the modern distributed Spring stack.

manning.com

Introduction to Algorithms (CLRS, 4th ed.) — Cormen, Leiserson, Rivest, Stein

The canonical algorithms reference; rigorous proofs and pseudocode.

mitpress.mit.edu

Algorithms (4th ed.) — Sedgewick & Wayne

Java-based algorithms text with runnable implementations.

algs4.cs.princeton.edu

The Algorithm Design Manual (3rd ed.) — Steven Skiena

Practical war stories plus a catalog of algorithmic problems.

algorist.com

Competitive Programmer's Handbook — Antti Laaksonen

Free PDF covering the full competitive-programming toolkit.

cses.fi

Cracking the Coding Interview (6th ed.) — Gayle Laakmann McDowell

The classic interview-prep problem book.

crackingthecodinginterview.com

System Design Interview Vol. 1 — Alex Xu

Chapters on rate limiting, URL shortener, and more.

amazon.com

Building Microservices (2nd ed.) — Sam Newman

Practical guide to designing, building, and operating microservices.

oreilly.com

Site Reliability Engineering (Google)

Free online; SLI/SLO/SLA and operational practice.

sre.google

System Design Interview Vol. 2 — Alex Xu & Sahn Lam

Second volume: Twitter, notifications, payments, and more.

amazon.com