Discovering Domain Concepts and Behaviors
Turn use cases and domain language into a small, behavior-rich model. Learn how to find candidates, protect invariants, and avoid making every noun a class.
Turn use cases and domain language into a small, behavior-rich model. Learn how to find candidates, protect invariants, and avoid making every noun a class.
Learn all nine GRASP patterns through a Java order workflow, with code, trade-offs, failure cases, and design review questions for intermediate developers.
Compare Adapter, Bridge, Composite, Decorator, Facade, Flyweight, and Proxy with Java examples, costs, failure modes, and guidance for choosing a fit.
Learn how identity, value equality, and aggregate boundaries shape a reliable order model, with Java code, trade-offs, failure cases, and design checks.
Understanding Java atomic operations: AtomicInteger, AtomicReference, VarHandle, compareAndSet, atomics vs locks, and lock-free programming patterns.
A technical deep dive into the JVM bytecode verifier, covering type checking, stack map frames, the four verification stages, and what happens when verification fails.
A guide to Class Data Sharing in the JVM, covering how CDS and AppCDS work, how to create shared archives, and how they reduce startup time and memory footprint.
Deep dive into the JVM Class Loader subsystem covering loading, linking, initialization phases and the ClassLoader hierarchy with parent delegation model.
Master the most frequently used JVM bytecode instructions: aload, astore, invoke, return, and arithmetic operations.
Java concurrent collections deep dive: ConcurrentHashMap, BlockingQueue, CopyOnWriteArrayList, ConcurrentLinkedQueue, and choosing the right structure.