Interactive Atlas
100DaysOfJava Knowledge Graph
A beautiful, interactive graph of the 100DaysOfJava series with topic intelligence and direct post navigation.
Loading graph data...
Legend
- Sequence edge
- Reference edge
- Topic edge
Fallback list
If interactive rendering is unavailable, use this list of posts.
- Day 99: Virtual Threads Didn't Kill Event Loops. Here's How Each Works
- Day 100: Why Your Parallel Streams Are Leaving CPU Cores Idle (And How to Fix It)
- Day 98: I Thought Virtual Threads Were Just Green Threads They're Actually Continuations on the Heap
- Day 97: Java Concurrency Toolkit Part 3 - Advanced Patterns & Production Readiness
- Day 96: Java Concurrency Toolkit Part 2 - Core Synchronization Patterns
- Day 95: Java Concurrency Toolkit Part 1 - Foundation & Execution Patterns
- Day 94: Nobody Told Me Java Application Could Start This Fast and The Rabbit hole I explored
- Day 93: Stop Leaking Passwords - Building Java's Answer to PHP's #[SensitiveParameter]
- Day 92: Building AI Agents with Java 21 and Spring AI - My Learning from the Workshop
- Day 91: The Art of Reading Massive Files Without Breaking a Sweat - Memory Mapping in Java 21
- Day 90: How I Built a Secret Agent That Infiltrates Any Java Application
- Day 89: When Your Singleton Isn't Really a Singleton (And How to Fix It)
- Day 88: Multilingual Audio Transcription with Gemini 1.5, Vertex AI, and Spring Boot
- Day 87: Java's Environment Variable Paradox: Easy to Read, Impossible to Change?
- Day 86: Building a Secure Java Sandbox with Custom Class Loaders, Process isolation and Java Platform Module System – Executing JAR and .java Files Safely
- Day 85: Idempotent APIs in Java: Concepts, Implementation Strategies, and a Spring Boot File Upload Implementation
- Day 84: Hot Class Reload in Java – A Webpack HMR-like Experience for Java Developers
- Day 83: Java Object Cloning: Exploring Shallow and Deep Copy Techniques
- Day 82: Reflection in Java: Building a Simple DI Container in 100 Lines of Code
- Day 81: Creating custom stream operations ex: Slide, Shift, Zip and Fold using Spliterator
- Day 80: From Concept to Code: Implementing a Dummy Consistent Hashing in Java using TreeMap
- Day 79: Did you know that too much print statement can cost you money
- Day 78: Java 22 - Embracing Safe Memory Allocation Using FFM API - An alternative to Unsafe API
- Day 77: Explore Something Unsafe : Crafting a Memory allocator using Java Unsafe API
- Day 76: Implementing a dummy Service Oriented Architecture (SOA) service to Understand Java Service Provider Interface (SPI)
- Day 75: Java BufferedReader: Do We Know Why We Need To Close It?
- Day 74: Java Security: Crafting a toy TLS Server with Java Security API
- Day 73: Java Security: Safeguarding Data with Encryption and Keys
- Day 72: Can a HashMap Take Null or Empty String as a Key in Java?
- Day 71: Understanding Heap poullion in java and its causes and how to prevent it
- Day 70:Diving deep into Array copy- Measuring Array Copy Performance in Java with JMH: A Comparative Analysis of Methods
- Day 69 : Unlocking Java Performance Secrets: Harnessing the Power of JMH Microbenchmarking
- Day 68 : Becoming a memory plumber; A tale of Memory Leak and how to find them ( part 3)
- Day 67: Becoming a memory plumber; A tale of Memory Leak and how to find them ( part 2)
- Day 66: Becoming a memory plumber; A tale of Memory Leak and how to find them ( part 1)
- Day 65: A tale of RMI (Remote Method Invocation) in java
- Day 64: Implementing a basic Bloom Filter Using Java BitSet api
- Day 63: Alert system for Java OutOfMemory Error
- Day 62: Understanding JMX and its architecture ( Agent Level )
- Day 61: Understanding JMX and its architecture (Management Level)
- Day 60: Generating JVM heap dump programmatically
- Day 59: Understanding Proxy and Dynamic Proxy in Java
- Day 58: Mocking void methods using ArgumentCapture and Answering
- Day 57: All about Random in Java ( Random, SecureRandom,ThreadLocalRandom and SplittableRandom)
- Day 56: Zero length Array and Its use
- Day 55: Understanding static and instance initializer in java classes and
- Day 54: Understanding volatile keyword's use for Multi Threaded program
- Day 53: Processing Http Request Asynchronously using CompletableFutures
- Day 52: Async Processing HttpRequest's using ExecutorCompletionService
- Day 51: Creating Stream (using StreamSupport API) from Spliterator by converting Iterator to Spliterator
- Day 50: Marker interface and it's uses
- Day 49: A utility class for Zip and Unzip files using java FileSystem api (Part 2)
- Day 48: A utility class for Zip and Unzip files using java Zip api (Part 1)
- Day 47: ThreadMXBean to get information about thread's status, deadlock monitoring and cpu time that the thread got etc.
- Day 46: Writing a generic and thread safe ObjectPool to enable pooling for any type of class
- Day 45: learning about the internals of JVM and JRE (part 3)
- Day 44: learning about the internals of JRE and JVM (Part 2)
- Day 43: learning about the internals of jre, jvm (Part 1)
- Day 42: using custom annotations and check if its a class level or field level annotation
- Day 41: Generating unique id's based on device MAC address and epoch time
- Day 40: Generator implementation using custom Iterator and Threads.
- Day 39: Local date time to UTC date time and vice versa with respect to timezone and Day light saving
- Day 38: One of the cases to use check and unchecked exceptions
- Day 37: Feature toggle to enable disable features for paid and unpaid user
- Day 36: Learned about banned dependencies and how to ban transitive dependency in a maven or gradle project
- Day 35: Emulating Pair in java using AbstractMap.SimpleEntry<>() and new Object() {} implementation
- Day 26: Writing a method to retry another method execution