1. Java Exceptionshistorical

    Checked and unchecked exceptions, propagation, finally, try-with-resources, and Error versus Exception.

  2. Designing Exception Handlinghistorical

    Practical exception-handling rules: catch at meaningful boundaries, preserve context, avoid swallowing failures, and map errors once.

  3. Guava BloomFilterhistorical

    Probabilistic membership testing with Guava BloomFilter, false positives, sizing, serialization, and appropriate use cases.

  4. How Lombok Workshistorical

    Lombok's compile-time annotation processing/compiler integration and the trade-offs of generated Java boilerplate.

  5. MyBatis Overviewhistorical

    MyBatis as a SQL-mapping framework: explicit SQL, parameter/result mapping, sessions, mappers, and transaction boundaries.

  6. Spring Cloud Overviewhistorical

    Spring Cloud as an integration ecosystem for distributed-service concerns, with version-train compatibility and evolving components.

  7. Spring Framework Learning Resourceshistorical

    A roadmap from dependency injection and bean lifecycle through AOP, transactions, MVC, Boot, and source-code reading.

  8. Spring Boot Overviewhistorical

    Spring Boot's opinionated application bootstrap, starters, auto-configuration, embedded servers, external configuration, and observability.

  9. Spring MVC Overviewhistorical

    Spring MVC's DispatcherServlet request pipeline, controllers, handler mapping/adapters, binding, validation, and response rendering.

  10. Guava RateLimiterhistorical

    Local token/rate limiting with Guava RateLimiter and its limits in distributed systems.

  11. Using MyBatishistorical

    Mapper definitions, parameter binding, result mapping, dynamic SQL, sessions, and safe transaction usage in MyBatis.

  12. Spring Framework Moduleshistorical

    A conceptual map of Spring Core/Beans/Context, AOP, data/transactions, web MVC/reactive, testing, and integration modules.

  13. Spring Boot Learning Resourceshistorical

    A learning roadmap for Boot configuration, auto-configuration, web/data integration, packaging, observability, and source analysis.

  14. Using Spring MVChistorical

    Controller mappings, request binding, validation, JSON responses, exception handling, and safe web-layer boundaries.

  15. MyBatis Source Architecturehistorical

    MyBatis execution flow from mapper proxy through mapped statement, executor, statement handler, parameter/result handling, and caching.

  16. Spring MVC Source Flowhistorical

    Source-level request flow through DispatcherServlet, HandlerMapping, HandlerAdapter, interceptors, argument/return handlers, and exception processing.

  17. MyBatis Learning Resourceshistorical

    A practical roadmap for learning MyBatis from SQL mapping through caching, plugins, transactions, and source internals.

  18. Thread Safety in Spring MVC Controllershistorical

    Why singleton controllers handle concurrent requests and should avoid unsynchronized mutable instance state.

  19. Spring MVC Learning Resourceshistorical

    A roadmap from DispatcherServlet and controllers through argument resolution, message conversion, validation, errors, and source analysis.

  20. Using Nettyhistorical

    Building event-driven network clients and servers with Bootstrap, EventLoopGroup, Channel, Pipeline, handlers, and graceful shutdown.

  21. Netty 3.x Source Analysis (Historical)historical

    Historical Netty 3 architecture and why its APIs/classes should not be projected onto modern Netty 4.x designs.

  22. Apollo Configuration Centerhistorical

    Centralized configuration, namespaces, change delivery, local caching, and operational considerations for Apollo-style config systems.

  23. Eureka Service Discoveryhistorical

    Eureka-style client registration and discovery, heartbeats, cached registries, and availability-oriented semantics.

  24. Feign Declarative HTTP Clientshistorical

    Declarative HTTP interfaces, encoding/decoding, errors, timeouts, retries, and service-discovery integration.

  25. Spring Cloud Gatewayhistorical

    Reactive API gateway routing, filters, cross-cutting policy, and the importance of non-blocking/backpressure-safe customization.

  26. Hystrix (Historical)historical

    Historical Hystrix circuit breaker, timeout, fallback, and isolation concepts that remain useful even though the library is legacy.

  27. Ribbon Client-Side Load Balancing (Historical)historical

    Historical Ribbon client-side load balancing and durable instance-selection concepts.

  28. Spring Cloud Sleuth (Historical)historical

    Distributed trace/span propagation concepts and the transition from Spring Cloud Sleuth to newer observability stacks.

  29. Zuul Gateway (Historical Context)historical

    Netflix Zuul gateway/filter architecture and its place as historical context beside newer Spring gateway stacks.

  30. Spring Application Events and Listenershistorical

    Spring application-event publication, listener execution, transactions, asynchrony, and coupling considerations.

  31. Spring Bean Scopeshistorical

    Singleton, prototype, request/session and other Spring bean scopes, including lifecycle and thread-safety implications.

  32. Using Spring AOPhistorical

    Pointcuts, advice, proxies, aspect ordering, and the self-invocation limitation of proxy-based Spring AOP.

  33. Using Spring IoChistorical

    Dependency injection through components/configuration with constructor injection, explicit dependencies, and container-managed lifecycle.

  34. How Spring Autowiring Workshistorical

    Dependency resolution by type/qualifier/name metadata and the BeanPostProcessor infrastructure behind annotation injection.

  35. Spring Transaction Source Architecturehistorical

    Proxy/interceptor transaction flow from metadata lookup to transaction manager begin/commit/rollback.

  36. Creating a Spring Boot Starterhistorical

    Packaging reusable dependencies plus conditional auto-configuration and typed configuration properties without surprising applications.

  37. Using Spring Boot Cache Supporthistorical

    Spring cache abstraction usage, cache annotations, cache keys, invalidation, and the limits of local or remote cache providers.

  38. How an Executable Spring Boot Jar Startshistorical

    Executable Boot archive layout, launcher/class-loader concept, nested dependencies, and why exact launcher classes are version-specific.

  39. MyBatis Auto-Configuration in Spring Boothistorical

    Conditional creation of SqlSessionFactory, mapper integration, transaction participation, and application override points.

  40. Spring MVC Auto-Configuration in Spring Boothistorical

    How Boot conditionally configures MVC defaults while allowing application customization and full override.

  41. Starting a Spring Boot Applicationhistorical

    The application entry point, SpringApplication, configuration sources, profiles, lifecycle hooks, and graceful startup/shutdown.

  42. Embedded Tomcat Auto-Configurationhistorical

    How Spring Boot creates and customizes an embedded servlet container from dependencies, web application type, and server properties.

  43. Netty Learning Resourceshistorical

    A practical Netty learning roadmap from event loops and pipelines through buffers, codecs, backpressure, and version-pinned source reading.

  44. Netty Source Analysis Summaryhistorical

    A durable mental model for Netty server bootstrap, event loops, channel registration, pipelines, and ByteBuf allocation.

  45. Hystrix Thread Isolation (Historical)historical

    Thread/semaphore bulkhead isolation, bounded queues, timeout behavior, and modern resilience interpretation.

  46. Spring Bean Lifecyclehistorical

    From bean definition and instantiation through dependency injection, post-processors, initialization, proxies, use, and destruction.

  47. What Spring AOP Ishistorical

    Spring's proxy-based aspect-oriented programming model: join points, pointcuts, advice, aspects, and proxies.

  48. What Spring IoC Ishistorical

    Inversion of Control and dependency injection as moving object construction/wiring policy from business classes to a container.

  49. 2.47 Spring常用注解historical

    注解作用 @Configuration 相当于之前的applicationContext.xml,就是一个配置文件 @ComponentScan 配置扫描包,如果有@Controller,@Service,@Repositiry,@Component修饰的,则把它加入ioc容器中 @Bean 配合@

  50. Spring Transaction Propagationhistorical

    REQUIRED, REQUIRES_NEW, NESTED and other propagation modes as policies for existing versus new transaction contexts.

  51. Spring Boot Cache Auto-Configurationhistorical

    How Spring Boot conditionally creates cache infrastructure from classpath, properties, beans, and provider availability.

  52. Netty Core Componentshistorical

    The roles of Bootstrap, EventLoopGroup, EventLoop, Channel, Pipeline, Handler, Future, and ByteBuf.

  53. Netty Direct / Off-Heap Memoryhistorical

    Why Netty uses direct buffers, their I/O advantages and native-memory/reference-counting risks.

  54. Spring BeanFactoryhistorical

    BeanFactory as Spring's dependency-container contract and its relationship with ApplicationContext.

  55. Using Spring Transactionshistorical

    Declarative transaction boundaries, rollback rules, proxy limitations, isolation, timeouts, and external side effects.

  56. Spring Circular Dependencieshistorical

    Constructor versus setter/field cycles, early references, proxy complications, and why redesign is usually preferable.

  57. Ordering Spring Bean Initializationhistorical

    How to express real bean dependencies instead of relying on incidental initialization order.

  58. Netty Source: Creating NioEventLoopGrouphistorical

    Historical source view of how a NioEventLoopGroup creates and manages child event loops.

  59. Netty Source: Bootstrap Creationhistorical

    How Bootstrap/ServerBootstrap accumulate configuration before channel registration and bind/connect.

  60. Netty Bind Source Summaryhistorical

    End-to-end server bind flow: create, initialize, register, bind, activate, and complete the ChannelFuture.

  61. Netty Source: Detecting New Connectionshistorical

    How readiness on a listening channel leads the event loop to accept new sockets.

  62. Netty Source: Pipeline Initializationhistorical

    How every Channel owns a pipeline of handler contexts and how initial handlers are installed.

  63. Netty Server Startup: Creating the Server Channelhistorical

    First server-startup phase: Bootstrap configuration produces a concrete listening-channel instance.

  64. Spring IoC Source: Creating the Application Contexthistorical

    High-level ApplicationContext refresh flow from environment/bean definitions through post-processors and singleton initialization.

  65. Spring Boot Startup Source Flowhistorical

    Conceptual SpringApplication startup phases from environment preparation through context refresh, runners, and ready events.

  66. Netty Source: Creating EventLoop Executorshistorical

    How Netty associates event loops with executors/threads and why event-loop thread ownership matters.

  67. Netty Source: Creating an Accepted NioSocketChannelhistorical

    Wrapping an accepted socket as a child Channel with pipeline/configuration and parent relationship.

  68. Netty Pipeline: Adding and Removing ChannelHandlershistorical

    Dynamic pipeline modification, handler lifecycle callbacks, event-loop serialization, and sharability constraints.

  69. Netty Server Startup: Initializing the Server Channelhistorical

    Applying parent options/attributes and installing child-channel initialization logic before registration.

  70. Spring IoC Source: BeanFactoryPostProcessor Phasehistorical

    How BeanFactoryPostProcessor customizes bean definitions/container metadata before ordinary bean instantiation.

  71. Spring Boot Auto-Configuration Principleshistorical

    Conditional configuration selection, metadata/imports, bean back-off, configuration properties, and condition diagnostics.

  72. Netty Source: Creating NioEventLoop Childrenhistorical

    Creation of the event-loop child set and channel-to-event-loop selection in a NioEventLoopGroup.

  73. Netty Source: Assigning an Accepted Channel to an EventLoophistorical

    Selecting a worker event loop and registering the accepted child channel for thread-confined I/O processing.

  74. Netty Server Startup: Registering with the EventLoophistorical

    Assigning the server channel to an event loop and transport selector before binding.

  75. Spring IoC Source: Registering BeanPostProcessorshistorical

    Why BeanPostProcessors must be registered before ordinary singleton creation and what lifecycle extension they provide.

  76. Netty Source: Registering Read Interesthistorical

    How an active socket channel becomes interested in read readiness and feeds inbound pipeline events.

  77. Netty Server Startup: Binding the Porthistorical

    Asynchronous local-address bind, channel activation, failure handling, and bind future completion.

  78. Spring IoC Source: Instantiating Non-Lazy Singletonshistorical

    How Spring resolves bean dependencies, creates singleton instances, applies lifecycle processors, and caches exposed objects.

  79. Netty Server Startup Overviewhistorical

    ServerBootstrap to active listener: channel creation, initialization, event-loop registration, and bind.

  80. Spring IoC Class Relationshipshistorical

    A conceptual map of Spring container interfaces and extension points rather than a version-frozen UML diagram.

  81. Netty Bind Source: Instantiating the Channelhistorical

    Historical source flow from configured channel factory to a server Channel instance before registration.

  82. Netty Bind Source: Binding the Listening Sockethistorical

    How an event-loop-owned server channel performs the transport bind and transitions toward active listening state.

  83. Netty Pipeline: Inbound Eventshistorical

    Propagation of channel lifecycle and read events through inbound handlers.

  84. Netty ByteBufhistorical

    Reader/writer indexes, heap/direct buffers, slicing, reference counting, and ownership rules.

  85. Spring AOP Source: Registering the Auto-Proxy Creatorhistorical

    How annotation-driven AOP enables an auto-proxy BeanPostProcessor, described as versioned Spring internals.

  86. Spring AOP Source: Creating the Auto-Proxy Creatorhistorical

    Lifecycle of Spring's AOP auto-proxy creator as an infrastructure bean and BeanPostProcessor.

  87. Spring AOP Source Analysis Summaryhistorical

    End-to-end Spring AOP model from infrastructure registration and advisor discovery to proxy creation and interceptor invocation.

  88. Netty Bind Source: Initializing the Channelhistorical

    Applying options, attributes, and pipeline handlers to a newly created server channel.

  89. Netty Source: NioEventLoop Run Loophistorical

    Selector waiting, selected-key processing, queued tasks, scheduling, and fairness inside a Netty NIO event loop.

  90. Netty Pipeline: Outbound Eventshistorical

    Propagation of writes, flushes, binds, connects, closes, and other outbound operations through handlers toward the transport.

  91. Netty ByteBufAllocatorhistorical

    Allocator abstraction for heap/direct, pooled/unpooled buffers and why allocation strategy is configurable.

  92. Spring AOP Source: When Auto-Proxying Runshistorical

    Where auto-proxy creation participates in the bean lifecycle and why early references matter for some dependency graphs.

  93. Netty Bind Source: Registering the Channelhistorical

    Assigning a Channel to an EventLoop, registering with selector/transport state, and firing registration events.

  94. Netty Pipeline: Exception Propagationhistorical

    How handler failures become exceptionCaught events and why exceptions need explicit logging, cleanup, and connection policy.

  95. Using Netty ByteBuf Allocation Safelyhistorical

    Allocator usage, capacity, slicing, copying, reference-count handling, and leak-safe buffer ownership.

  96. Spring AOP Source: Creating the Proxyhistorical

    Advisor matching and creation of JDK-interface or class-based proxies around eligible Spring beans.

  97. Netty Channel Type Hierarchyhistorical

    Conceptual Channel hierarchy across transport-independent API, abstract channel support, and concrete NIO/native transports.

  98. Spring AOP Source: Invoking the Target Methodhistorical

    Interceptor-chain execution around a proxied target method and how proceed composes advice.

  99. Netty PooledByteBufAllocatorhistorical

    Pooled ByteBuf allocation, arenas/chunks/suballocation concepts, reuse benefits, and version-sensitive allocator internals.

  100. Netty PoolThreadCachehistorical

    Per-thread pooled buffer caching as an allocation optimization, with retention and event-loop affinity trade-offs.

  101. Blocking, Non-Blocking, and Asynchronous Java I/Ohistorical

    Comparing blocking streams, selector-based non-blocking channels, and asynchronous completion APIs without oversimplifying their OS mappings.

  102. Multithreaded Blocking I/O Serverhistorical

    A thread-per-connection blocking server, its simplicity, and the need for bounded resources and modern virtual-thread context.

  103. Java Asynchronous I/Ohistorical

    Java asynchronous channel APIs, completion handlers/futures, and the distinction between API-level asynchrony and OS implementation details.

  104. Blocking I/O (BIO)historical

    Java blocking I/O semantics and when a simple blocking programming model remains appropriate.

  105. NIO Bufferhistorical

    ByteBuffer position, limit, capacity, flip/clear/compact, and heap versus direct buffers.

  106. NIO Event-Loop Serverhistorical

    A selector/event-loop server architecture and the separation of I/O readiness from application work.

  107. Asynchronous Java Serverhistorical

    A completion-driven server design using asynchronous accept/read/write operations and explicit connection state.

  108. Java I/O Stream Basicshistorical

    Byte streams, character streams, buffering, decorators, and explicit charset boundaries in Java I/O.

  109. NIO Channelhistorical

    Java NIO channel abstractions, partial reads/writes, scattering/gathering, and channel lifecycle.

  110. Serialization Protocols for Network Serviceshistorical

    Choosing text/binary serialization by schema evolution, compatibility, size, CPU, tooling, and security.

  111. Java File Streamshistorical

    Reading and writing files with stream APIs, buffering, resource cleanup, and when NIO Files is simpler.

  112. java.nio.file.Fileshistorical

    High-level Java filesystem operations and important caveats around atomicity, metadata, and large files.

  113. Application Heartbeatshistorical

    Heartbeat design for detecting stale connections and distinguishing liveness from end-to-end health.

  114. Blocking Java Serverhistorical

    A blocking server architecture, thread-per-connection trade-offs, and bounded concurrency requirements.

  115. Java NIO Overviewhistorical

    Buffers, channels, selectors, readiness-based multiplexing, and the scope of Java NIO.

  116. Message Framing over TCPhistorical

    Length-prefix, delimiter, and fixed-size framing for converting a TCP byte stream into application messages.

  117. java.nio.file.Pathhistorical

    Path composition, normalization, absolute/real paths, and filesystem-safe comparisons.

  118. Selector-Based NIO Serverhistorical

    Designing a Java non-blocking server with Selector, per-connection state, partial I/O, and backpressure.

  119. Java enumhistorical

    Java enum types as fixed typed instances with fields, methods, switch support, and identity semantics.

  120. Java switchhistorical

    Java switch statements and expressions, fall-through, enums/strings, and modern exhaustive pattern-oriented forms.

  121. Java transienthistorical

    The transient modifier in Java native serialization and why it is not a general secrecy/security mechanism.

  122. Java finalhistorical

    final variables, methods, classes, final-field semantics, and what final does not make immutable.

  123. Cloneable and Object.clonehistorical

    Java's Cloneable marker interface, shallow copying, constructor bypass, and why explicit copy APIs are usually clearer.

  124. Integer and Boxinghistorical

    Integer boxing/unboxing, value comparison, caching, parsing, overflow, and null-unboxing hazards.

  125. ArrayListhistorical

    ArrayList's resizable-array model, complexity, capacity growth, iteration, and concurrency characteristics.

  126. Hashtablehistorical

    Legacy Hashtable synchronization, null restrictions, and modern replacement choices.

  127. java.lang.Objecthistorical

    Core Object methods: equals/hashCode, toString, class identity, monitor methods, and cloning/finalization caveats.

  128. PriorityQueuehistorical

    Heap-based priority queues, ordering semantics, complexity, and concurrency limitations.

  129. Java Serializablehistorical

    Java native serialization, serialVersionUID, compatibility, security risks, and modern alternatives for service/data formats.

  130. HashSethistorical

    Hash-based Set semantics, equality/hashCode requirements, null handling, and concurrency characteristics.

  131. Stringhistorical

    Java String immutability, pooling, equality, concatenation, encoding boundaries, and implementation-sensitive storage.

  132. LinkedListhistorical

    Java LinkedList as a doubly linked List/Deque, with operation costs and cache-locality trade-offs.

  133. LinkedHashMaphistorical

    Insertion/access-order HashMap with a linked iteration order and the basis of simple LRU-style maps.

  134. Immutable Objectshistorical

    Designing Java immutable objects and the concurrency benefits of stable state.

  135. LinkedHashSethistorical

    A HashSet variant with deterministic insertion-order iteration.

  136. StringBufferhistorical

    Legacy synchronized mutable text builder and its relationship to StringBuilder.

  137. Converting Between Lists and Arrayshistorical

    Safe Java List/array conversion and the mutability semantics of Arrays.asList and modern collection factories.

  138. Java Map Implementations Comparedhistorical

    Choosing HashMap, LinkedHashMap, TreeMap, ConcurrentHashMap, and synchronized/legacy maps.

  139. Collections.synchronizedSethistorical

    Synchronized Set wrappers and the need for external synchronization during compound operations and iteration.

  140. StringBuilderhistorical

    Efficient mutable text construction, capacity, non-thread-safety, and compiler concatenation optimizations.

  141. Java List Implementations Comparedhistorical

    Choosing among ArrayList, LinkedList, CopyOnWriteArrayList, and synchronized wrappers by access pattern.

  142. Collections.synchronizedMaphistorical

    Synchronized Map wrappers, compound-operation atomicity, iteration locking, and concurrent alternatives.

  143. TreeSethistorical

    Sorted/navigable set semantics, comparator ordering, and logarithmic tree operations.

  144. Comparing Java Stringshistorical

    String identity, content equality, ordering, null safety, and case-insensitive comparison cautions.

  145. Collections.synchronizedListhistorical

    The synchronized List wrapper, compound operations, iteration requirements, and alternatives.

  146. TreeMaphistorical

    Sorted and navigable maps, key ordering, logarithmic operations, and comparator consistency.

  147. Vectorhistorical

    Legacy synchronized Vector behavior and why ArrayList or specialized concurrent collections are usually preferred.

  148. Fail-Fast Iteratorshistorical

    What ConcurrentModificationException means, structural modification tracking, and why fail-fast behavior is not a thread-safety guarantee.

  149. HashMap in JDK 7historical

    Historical JDK 7 HashMap bucket-chain implementation and resize behavior, clearly separated from modern JDK internals.

  150. HashMap in JDK 8historical

    Historical JDK 8 HashMap array/bin/tree design, resize concepts, load factor, and stable API-level lessons.

  151. 6.1 Hardware Foundations for Concurrencyhistorical

    CPU caches, coherence, out-of-order execution, memory ordering, and why language memory models exist above hardware.

  152. 6.2 synchronizedhistorical

    Java intrinsic monitors, mutual exclusion, happens-before visibility, reentrancy, synchronized methods/blocks, and JVM implementation caveats.

  153. 6.3 volatilehistorical

    Java volatile visibility and ordering semantics, acquire/release-style happens-before behavior, atomic single reads/writes, and why volatile is not a lock.

  154. 6.4 Compare-and-Set (CAS)historical

    Atomic compare-and-set as a read-modify-write primitive, retry loops, contention, ABA, and when lock-free does not mean contention-free.

  155. 6.5 AbstractQueuedSynchronizer (AQS)historical

    AQS as the state-and-wait-queue framework behind many JUC synchronizers, with exclusive/shared acquisition, parking, cancellation, and template methods.

  156. 6.6 ReentrantLockhistorical

    Explicit reentrant mutual exclusion with interruptible/timed acquisition, optional fairness, Conditions, and try/finally release.

  157. 6.7 Lock Conditionshistorical

    Condition variables with await/signal, predicate loops, lock association, spurious wakeups, and the relationship to Object.wait/notify.

  158. 6.8 CyclicBarrierhistorical

    A reusable barrier that releases a group when all parties arrive, with barrier actions, broken-barrier behavior, and comparison with CountDownLatch.

  159. 6.9 CountDownLatchhistorical

    A one-shot shared countdown synchronizer for waiting until N events complete, with AQS shared-mode semantics.

  160. 6.10 CopyOnWriteArrayListhistorical

    How CopyOnWriteArrayList provides lock-free reads by publishing immutable array snapshots, and when its write cost makes it unsuitable.

  161. 6.11 CopyOnWriteArraySethistorical

    CopyOnWriteArraySet semantics, implementation relationship with CopyOnWriteArrayList, snapshot iteration, and read-heavy use cases.

  162. ArrayBlockingQueuehistorical

    A fixed-capacity array-backed blocking queue with explicit backpressure, FIFO element order, and optional fairness.

  163. 6.13 ThreadLocalhistorical

    Per-thread context storage, ThreadLocalMap lifetime, weak keys, stale values, thread-pool leaks, remove(), and modern context-propagation considerations.

  164. 6.14 ThreadPoolExecutorhistorical

    Java thread-pool execution policy, core/max workers, work queues, rejection, shutdown, sizing, bounded backpressure, and modern virtual-thread context.

  165. 6.15 CompletableFuturehistorical

    Composable asynchronous computation with CompletableFuture: stage chaining, error handling, executors, blocking hazards, and cancellation semantics.

  166. 6.16 ConcurrentHashMap in JDK 7historical

    Historical JDK 7 ConcurrentHashMap design: segmented locking, read concurrency, and why these internals should not be generalized to modern JDKs.

  167. 6.17 Fork/Join Frameworkhistorical

    Java ForkJoinPool, recursive task decomposition, work stealing, common-pool behavior, and the limits of fork/join for blocking work.

  168. 6.18 Exchangerhistorical

    How Java Exchanger pairs two threads at a rendezvous point and atomically swaps one value from each participant.

  169. ReentrantReadWriteLockhistorical

    A reentrant read/write lock with shared readers, exclusive writers, optional fairness, lock downgrading, and workload trade-offs.

  170. Semaphorehistorical

    Permit-based concurrency control with acquire/release, bounded resource access, optional fairness, and the distinction from rate limiting.

  171. 6.21 User, Kernel, and Java Threadshistorical

    User-level versus kernel-level threads, the traditional Java platform-thread mapping, and how virtual threads change the model.

  172. 6.22 Unsafehistorical

    Why sun.misc.Unsafe exists, what low-level operations it exposes, and why supported Java APIs should usually be preferred.

  173. 6.23 The Java Memory Model (JMM)historical

    Java's memory model, data races, happens-before, synchronization order, volatile, monitors, thread start/join, final fields, and sequential consistency for correctly synchronized programs.

  174. Optimizing Java Lockinghistorical

    Durable lock-performance principles: reduce contention and critical sections, avoid blocking work while locked, split ownership carefully, and treat JVM lock internals as version-sensitive.

  175. Building an AQS-Style Synchronizerhistorical

    A teaching implementation of a synchronizer using atomic state, a FIFO wait queue, park/unpark, and release wakeups, emphasizing invariants rather than copying JDK internals.

  176. Fair ReentrantLockhistorical

    How fair ReentrantLock reduces barging by honoring queued predecessors, and the throughput/latency trade-off of fairness.

  177. BlockingQueuehistorical

    Producer-consumer queues with bounded capacity, blocking/timed operations, backpressure, and the semantics of major Java BlockingQueue implementations.

  178. Executors Factory Methodshistorical

    Convenience ExecutorService factories, their hidden queue/thread choices, and why explicit executor configuration or virtual-thread executors are often clearer.

  179. 6.16 ConcurrentHashMap in JDK 8historical

    Historical JDK 8 ConcurrentHashMap design: CAS insertion, bin synchronization, tree bins, cooperative resizing, and stable public semantics.

  180. 6.30 Producer-Consumerhistorical

    Producer-consumer coordination with BlockingQueue, wait/notify, and Condition, including bounded capacity and correct wait-loop semantics.

  181. Nonfair ReentrantReadWriteLockhistorical

    Default read/write-lock acquisition, reader/writer barging policy, writer-starvation avoidance heuristics, and throughput trade-offs.

  182. Nonfair Semaphorehistorical

    Default semaphore barging behavior, shared AQS permit state, and why nonfair acquisition often improves throughput.

  183. 6.33 Thread.sleephistorical

    Thread.sleep timing semantics and the important difference between sleeping and waiting on an object monitor.

  184. Nonfair ReentrantLockhistorical

    Default ReentrantLock barging behavior, why it can improve throughput, and how AQS queues still handle contended waiters.

  185. LinkedBlockingQueuehistorical

    A linked-node blocking queue with optional capacity, separate producer/consumer coordination, and the risk of its very large default bound.

  186. RejectedExecutionHandlerhistorical

    ThreadPoolExecutor overload policies as backpressure: abort, caller-runs, discard, discard-oldest, and custom rejection semantics.

  187. 6.37 Deadlock Examplehistorical

    A minimal Java deadlock caused by inconsistent lock ordering, plus detection and prevention techniques.

  188. Fair ReentrantReadWriteLockhistorical

    Fair read/write-lock scheduling, queued predecessors, reader grouping, writer progress, and fairness costs.

  189. Fair Semaphorehistorical

    AQS shared acquisition with predecessor-aware fairness and the throughput trade-off of ordered permit allocation.

  190. 6.40 Java Thread Stateshistorical

    The six Thread.State values, what each means, and why Java thread state is not identical to an operating-system scheduler state.

  191. PriorityBlockingQueuehistorical

    An unbounded priority heap for concurrent producers/consumers, with ordering, capacity, and starvation caveats.

  192. SynchronousQueuehistorical

    A zero-capacity rendezvous queue that directly hands an element from producer to consumer, with fair/nonfair transfer modes and thread-pool implications.

  193. Java Atomic Variableshistorical

    AtomicInteger/Long/Reference, CAS-based read-modify-write, accumulators/adders, atomic references, memory semantics, and contention trade-offs.

  194. JVM Learning Resourceshistorical

    A concise roadmap for studying JVM memory, class loading, JIT compilation, garbage collection, and production diagnostics.

  195. Diagnosing Java Production Incidentshistorical

    A production Java incident workflow covering CPU, latency, threads, heap, GC, native memory, I/O, and evidence preservation.

  196. Garbage Collection: Core Ideahistorical

    Reachability-based reclamation, GC roots, object liveness, and why garbage collection manages memory rather than arbitrary external resources.

  197. JVM Class Lifecyclehistorical

    Loading, linking, initialization, use, unloading, and class-loader identity in the JVM.

  198. JVM Runtime Data Areashistorical

    Heap, stacks, method-area metadata, program counters, native stacks, and the difference between JVM specification concepts and HotSpot implementation details.

  199. JVM Performance Tuning Methodologyhistorical

    A hypothesis-driven performance tuning workflow from SLO and bottleneck identification through measurement, change, and regression validation.

  200. Garbage Collection Algorithmshistorical

    Mark-sweep, copying, compaction, generational collection, and the throughput/latency/space trade-offs behind modern JVM collectors.

  201. Java Class and Object Initialization Orderhistorical

    Static initialization, superclass initialization, instance field initializers, initializer blocks, and constructors in Java.

  202. JVM Object Allocationhistorical

    How HotSpot commonly allocates objects, including TLABs, young-generation allocation, large objects, promotion, and why exact rules depend on the collector.

  203. JVM Garbage Collectorshistorical

    A durable overview of Serial, Parallel, G1, ZGC, Shenandoah-style collector goals without treating historical defaults as permanent facts.

  204. Custom Java Class Loadershistorical

    How custom class loaders define classes, delegation, namespace isolation, and the operational risks of loader leaks.

  205. Escape Analysishistorical

    JIT escape analysis, scalar replacement, lock elimination, and why stack allocation should not be treated as a guaranteed Java object-allocation rule.

  206. Selecting a JVM Garbage Collectorhistorical

    Collector-selection principles and JVM flags, with emphasis on verifying support against the deployed JDK instead of copying obsolete flag recipes.

  207. JVM Object Creationhistorical

    From bytecode allocation through class readiness, heap allocation, zero initialization, object headers, and Java constructor execution.

  208. JVM Garbage Collection Overviewhistorical

    An overview of JVM garbage collection: reachability, generations, collection cycles, pauses, concurrent work, and the metrics that matter operationally.

  209. Java Object Memory Layouthistorical

    Conceptual object layout in HotSpot: headers, instance fields, alignment, compressed references, and why byte offsets are implementation-specific.

  210. Java Reference Typeshistorical

    Strong, soft, weak, phantom, and reachability-related references, with practical cautions about caches and cleanup.

  211. How JVM References Locate Objectshistorical

    Direct-pointer and handle-based object-reference models, and why Java code should not depend on a particular physical object-address representation.

  212. Java OOM Examples and Diagnosishistorical

    How to distinguish heap retention, allocation pressure, Metaspace, direct/native memory, and thread-related out-of-memory failures.

  213. Java Performance Diagnostic Toolshistorical

    A practical guide to JFR, jcmd, thread dumps, heap dumps, profilers, GC logs, and OS/container metrics.

  214. JVM Tuning Parametershistorical

    A measurement-first approach to JVM memory and GC parameters, avoiding obsolete one-size-fits-all tuning recipes.

  215. Analyzing JVM GC Logshistorical

    What to extract from GC logs: pause distribution, allocation pressure, live-set behavior, promotion, full collections, and concurrent-cycle health.

  216. Object-Oriented Programming in Javahistorical

    Encapsulation, abstraction, inheritance, composition, and polymorphism with practical Java design guidance.

  217. Java Reflectionhistorical

    Runtime type inspection and invocation with Java reflection, including access, performance, modules, and framework use cases.

  218. Java Sockethistorical

    Java TCP socket basics: connect/accept, stream semantics, timeouts, shutdown, framing, and production resource controls.

  219. Servlethistorical

    Servlet request/response lifecycle, container concurrency, filters/listeners, and the Jakarta namespace evolution.

  220. Tomcat Performance Tuninghistorical

    Capacity-oriented Tomcat tuning: connector limits, threads, queues, timeouts, keep-alive, JVM resources, and downstream bottlenecks.

  221. Using Tomcathistorical

    Tomcat deployment basics, connectors, applications, logs, configuration, and modern operational cautions.

  222. Tomcat Connectorhistorical

    The Tomcat connector boundary between network/protocol handling and the servlet container request pipeline.

  223. Tomcat Startup Flowhistorical

    Conceptual Tomcat startup: bootstrap, server/service/connectors, containers, lifecycle events, and application deployment.

  224. Tomcat Request Processing: Source Viewhistorical

    From connector protocol handling through container mapping/pipeline to servlet invocation, described without freezing one Tomcat version's stack.

  225. Building Tomcat from Sourcehistorical

    A version-aware workflow for checking out, building, testing, and debugging Tomcat source.

  226. Tomcat Container Hierarchyhistorical

    Engine, Host, Context, Wrapper, request routing, and the hierarchical Tomcat container model.

  227. Tomcat Request Routing: Configuration Viewhistorical

    How connector, virtual-host, context, and servlet mapping configuration determines a request's destination.

  228. Tomcat Lifecyclehistorical

    Tomcat component lifecycle initialization, start, stop, destroy, and lifecycle events.

  229. Tomcat Architecturehistorical

    Tomcat's service, connector, container hierarchy, lifecycle, and request-processing architecture.

  230. Java Genericshistorical

    Type parameters, bounds, wildcards, PECS, type erasure, and the limits of Java's generic type system.

  231. Java 8 Language and Library Featureshistorical

    Lambdas, functional interfaces, streams, Optional, default methods, java.time, and CompletableFuture introduced around Java 8.

  232. Comparable and Comparatorhistorical

    Natural ordering, external comparators, comparator contracts, and consistency with equality.