← All posts

java

13 articles

·7 min read

Java Multithreading Interview Questions, Answered by Running Them

Six questions from every Java concurrency interview, answered with a program's output rather than a definition — starting with how much a race really loses.

Java
·5 min read

Java Optional: The Methods Worth Knowing, and the One That Fools Everyone

Optional's useful methods with real output — and a measurement showing orElse runs its fallback even when the value is present, while orElseGet does not.

Java
·5 min read

Java Stream API Examples, and Four Ways They Surprise You

Complete stream examples with real output — grouping, flattening, collecting to a map — plus four behaviours that cause bugs not looking like stream bugs.

Java
·6 min read

HashSet vs HashMap: One Is Built Out of the Other

The difference is not two designs but one — javap shows a HashSet holding a HashMap. Every behaviour, and every failure mode, follows from that.

Java
·8 min read

ArrayList vs LinkedList: The Numbers Behind the Table

Everyone knows the complexity table. Here is what each operation actually costs when you time it — including the one result that contradicts the folklore.

Java
·9 min read

How to Run a Spring Boot App as a Linux Service (and How Small a Box It Needs)

The systemd unit file for a Spring Boot jar, the one line most of them are missing, and measured answers to how much memory the thing actually uses.

Cloud & DevOps
·8 min read

How to Dockerize a Spring Boot Application, and What Each Choice Costs

Four images built from one Spring Boot app, measured — 785MB down to 531MB, and why the layered build that everyone recommends does not shrink anything.

Containers
·8 min read

How to Secure a Spring Boot API with JWT (Without Writing a Filter)

Spring Security already parses and validates JWTs. Here is the whole setup — two beans and one line of DSL — plus what a short example quietly defers.

Backend & APIs
·8 min read

How to Build a REST API in Spring Boot, Including the Failures

Build a working Spring Boot REST API — GET, POST, 201 with Location — then see what your callers actually get back when the request is wrong, and fix it.

Backend & APIs
·9 min read

How to Create a Spring Boot Project (and What the Generator Actually Gives You)

Create a Spring Boot project with Spring Initializr, then read every one of the ten files it writes — and find out what the 19 MB jar you build actually holds.

Backend & APIs
·13 min read

How to Set the JAVA_HOME Environment Variable on Windows, Linux, and macOS

Set JAVA_HOME correctly on Windows, Linux and macOS — find the JDK folder, make the variable stick across reboots, and fix the errors it causes.

Java
·9 min read

Difference Between JDK, JRE and JVM: What Each One Actually Does

JDK, JRE and JVM explained by following one file from javac to output: what each layer holds, why Oracle stopped shipping a JRE, and which one to install.

Java
·9 min read

Service Discovery Using Eureka Server: How It Actually Works

How Eureka service discovery works: register, heartbeat, fetch and evict with real defaults, a Spring Boot server on port 8761, and self-preservation mode.

Distributed Systems