main
Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01KqJyCidz3ZgRyHABv2GVJh
java-core-examples
Runnable companion code for ankurm.com's Java-core / concurrency series. One Maven module per article; each module's own README has that article's version table, quickstart, and traps.
| Module | Post |
|---|---|
jmm |
The Java Memory Model Explained: volatile, happens-before, and Why Your Double-Checked Lock Failed |
locks |
synchronized vs ReentrantLock vs StampedLock: Benchmarks and a Decision Table |
atomics |
Java Atomics and VarHandle: CAS, LongAdder, and When Atomics Beat Locks |
vt-pinning |
Diagnosing Virtual Thread Pinning in Production: JFR Events, jcmd, and Real Fixes |
synchronizers |
CountDownLatch vs CyclicBarrier vs Phaser vs Semaphore in Java |
executors |
ExecutorService Done Right: Shutdown, try-with-resources and Virtual Thread Executors |
concurrency-interview |
Top 40 Java Concurrency Interview Questions and Answers (2026) |
arithmetic |
Add Two Numbers in Java Without Overflow: addExact, Widening, and BigInteger |
hashmap-concurrenthashmap |
Java HashMap vs ConcurrentHashMap: Complete Interview Guide |
exceptions |
Java Exception Handling Deep Dive: Checked vs Unchecked, Suppression, and What Exceptions Actually Cost |
regex |
Java Regex Tutorial: Pattern, Matcher, Groups, Lookarounds and ReDoS |
serialization |
Java Serialization in 2026: Why It's Dangerous and What Replaced It |
strings |
Java Strings Deep Dive: Interning, StringBuilder, Text Blocks, and the Concatenation Benchmark |
collections |
How to Sort a HashMap by Value (and Key) in Java |
nio2 |
Java NIO.2 File API: Files, Path, WatchService, and Streaming Large Files Without OOM |
License
MIT - see LICENSE.
Languages
Java
87.3%
Shell
12%
C
0.7%