<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>/docs/java-basics/001-oop-characteristics.html</loc>
</url>
<url>
<loc>/docs/java-basics/002-java-polymorphism.html</loc>
</url>
<url>
<loc>/docs/java-basics/003-interface-vs-abstract-class.html</loc>
</url>
<url>
<loc>/docs/java-basics/004-interface-abstract-class-inheritance.html</loc>
</url>
<url>
<loc>/docs/java-basics/005-composition-over-inheritance.html</loc>
</url>
<url>
<loc>/docs/java-basics/006-oop-six-principles-and-law.html</loc>
</url>
<url>
<loc>/docs/java-basics/007-pass-by-value-or-reference.html</loc>
</url>
<url>
<loc>/docs/java-basics/008-deep-copy-shallow-copy.html</loc>
</url>
<url>
<loc>/docs/java-basics/009-object-cloning-implementation.html</loc>
</url>
<url>
<loc>/docs/java-basics/010-java-reflection.html</loc>
</url>
<url>
<loc>/docs/java-basics/011-class-forname-vs-classloader.html</loc>
</url>
<url>
<loc>/docs/java-basics/012-int-vs-integer-and-cache.html</loc>
</url>
<url>
<loc>/docs/java-basics/013-integer-cache-100-vs-1000.html</loc>
</url>
<url>
<loc>/docs/java-basics/014-int-to-byte-cast-overflow.html</loc>
</url>
<url>
<loc>/docs/java-basics/015-float-literal-type-error.html</loc>
</url>
<url>
<loc>/docs/java-basics/016-char-type-chinese-storage.html</loc>
</url>
<url>
<loc>/docs/java-basics/017-bitwise-and-vs-logical-and.html</loc>
</url>
<url>
<loc>/docs/java-basics/018-efficient-multiply-by-8.html</loc>
</url>
<url>
<loc>/docs/java-basics/019-bitwise-and-for-odd-even-check.html</loc>
</url>
<url>
<loc>/docs/java-basics/020-object-class-methods.html</loc>
</url>
<url>
<loc>/docs/java-basics/021-equals-vs-double-equals.html</loc>
</url>
<url>
<loc>/docs/java-basics/022-why-need-hashcode.html</loc>
</url>
<url>
<loc>/docs/java-basics/023-hashcode-equals-relationship.html</loc>
</url>
<url>
<loc>/docs/java-basics/024-unequal-objects-same-hashcode.html</loc>
</url>
<url>
<loc>/docs/java-basics/025-comparator-vs-comparable.html</loc>
</url>
<url>
<loc>/docs/java-basics/026-string-stringbuilder-stringbuffer.html</loc>
</url>
<url>
<loc>/docs/java-basics/027-why-string-immutable.html</loc>
</url>
<url>
<loc>/docs/java-basics/028-how-string-immutable.html</loc>
</url>
<url>
<loc>/docs/java-basics/029-string-length-limit.html</loc>
</url>
<url>
<loc>/docs/java-basics/030-string-intern.html</loc>
</url>
<url>
<loc>/docs/java-basics/031-jdk9-string-byte-array.html</loc>
</url>
<url>
<loc>/docs/java-basics/032-jdk9-string-concat-optimization.html</loc>
</url>
<url>
<loc>/docs/java-basics/033-string-pool-timing.html</loc>
</url>
<url>
<loc>/docs/java-basics/036-string-reversal-methods.html</loc>
</url>
<url>
<loc>/docs/java-basics/037-array-length-vs-string-length.html</loc>
</url>
<url>
<loc>/docs/java-basics/038-bigdecimal-constructor-difference.html</loc>
</url>
<url>
<loc>/docs/java-basics/039-bigdecimal-equals-problem.html</loc>
</url>
<url>
<loc>/docs/java-basics/040-float-money-problem.html</loc>
</url>
<url>
<loc>/docs/java-basics/041-final-finally-finalize-differences.html</loc>
</url>
<url>
<loc>/docs/java-basics/042-access-modifiers-comparison.html</loc>
</url>
<url>
<loc>/docs/java-basics/043-static-access-non-static.html</loc>
</url>
<url>
<loc>/docs/java-basics/044-static-call-non-static.html</loc>
</url>
<url>
<loc>/docs/java-basics/045-static-vs-non-static-inner-class.html</loc>
</url>
<url>
<loc>/docs/java-basics/046-anonymous-inner-class.html</loc>
</url>
<url>
<loc>/docs/java-basics/047-this-and-super-keywords.html</loc>
</url>
<url>
<loc>/docs/java-basics/048-constructor-override.html</loc>
</url>
<url>
<loc>/docs/java-basics/049-overload-vs-override.html</loc>
</url>
<url>
<loc>/docs/java-basics/050-class-initialization-order.html</loc>
</url>
<url>
<loc>/docs/java-basics/051-custom-annotation-scenarios.html</loc>
</url>
<url>
<loc>/docs/java-basics/052-error-vs-exception.html</loc>
</url>
<url>
<loc>/docs/java-basics/053-checked-vs-unchecked-exceptions.html</loc>
</url>
<url>
<loc>/docs/java-basics/054-exception-hierarchy-and-common-runtime-exceptions.html</loc>
</url>
<url>
<loc>/docs/java-basics/055-common-runtime-exceptions.html</loc>
</url>
<url>
<loc>/docs/java-basics/056-try-catch-finally-return-execution-order.html</loc>
</url>
<url>
<loc>/docs/java-basics/057-break-vs-continue.html</loc>
</url>
<url>
<loc>/docs/java-basics/058-switch-type-compatibility.html</loc>
</url>
<url>
<loc>/docs/java-basics/059-foreach-vs-for-loop-efficiency.html</loc>
</url>
<url>
<loc>/docs/java-basics/060-what-is-generics.html</loc>
</url>
<url>
<loc>/docs/java-basics/061-type-erasure.html</loc>
</url>
<url>
<loc>/docs/java-basics/062-generic-type-naming.html</loc>
</url>
<url>
<loc>/docs/java-basics/063-generic-bounds-extends-super.html</loc>
</url>
<url>
<loc>/docs/java-basics/064-what-is-serialization.html</loc>
</url>
<url>
<loc>/docs/java-basics/065-java-serialization-principle.html</loc>
</url>
<url>
<loc>/docs/java-basics/066-fastjson-deserialization-vulnerability.html</loc>
</url>
<url>
<loc>/docs/java-basics/067-serialversionuid-purpose.html</loc>
</url>
<url>
<loc>/docs/java-basics/068-aio-bio-nio.html</loc>
</url>
<url>
<loc>/docs/java-basics/069-lambda-implementation.html</loc>
</url>
<url>
<loc>/docs/java-basics/070-parallel-stream-performance.html</loc>
</url>
<url>
<loc>/docs/java-basics/071-arrays-sort-algorithm.html</loc>
</url>
<url>
<loc>/docs/java-basics/072-simpledateformat-thread-safety.html</loc>
</url>
<url>
<loc>/docs/java-basics/073-jdk6-jdk7-jdk8-new-features.html</loc>
</url>
<url>
<loc>/docs/java-basics/074-what-is-proxy-and-why-dynamic-proxy.html</loc>
</url>
<url>
<loc>/docs/java-basics/075-dynamic-proxy-implementations.html</loc>
</url>
<url>
<loc>/docs/java-basics/076-jdk-proxy-vs-cglib.html</loc>
</url>
<url>
<loc>/docs/java-basics/077-dcl-singleton-double-check.html</loc>
</url>
<url>
<loc>/docs/java-basics/078-singleton-destruction-scenarios.html</loc>
</url>
<url>
<loc>/docs/java-basics/079-abstract-factory-vs-factory-method.html</loc>
</url>
<url>
<loc>/docs/java-collections/080-arraylist-vs-linkedlist.html</loc>
</url>
<url>
<loc>/docs/java-collections/081-arraylist-expansion-mechanism.html</loc>
</url>
<url>
<loc>/docs/java-collections/082-arraylist-expansion-details.html</loc>
</url>
<url>
<loc>/docs/java-collections/083-arraylist-linkedlist-time-complexity.html</loc>
</url>
<url>
<loc>/docs/java-collections/084-copyonwritearraylist-implementation.html</loc>
</url>
<url>
<loc>/docs/java-collections/085-hashmap-underlying-implementation.html</loc>
</url>
<url>
<loc>/docs/java-collections/086-why-hashmap-not-thread-safe.html</loc>
</url>
<url>
<loc>/docs/java-collections/087-hashmap-infinite-loop.html</loc>
</url>
<url>
<loc>/docs/java-collections/088-why-hashmap-capacity-power-of-two.html</loc>
</url>
<url>
<loc>/docs/java-collections/089-why-hashmap-load-factor-0-75.html</loc>
</url>
<url>
<loc>/docs/java-collections/090-when-does-hashmap-resize.html</loc>
</url>
<url>
<loc>/docs/java-collections/091-hashmap-resize-mechanism.html</loc>
</url>
<url>
<loc>/docs/java-collections/092-hashmap-hash-method-principle.html</loc>
</url>
<url>
<loc>/docs/java-collections/093-why-hashmap-treeify-threshold-8.html</loc>
</url>
<url>
<loc>/docs/java-collections/094-hashmap-jdk7-vs-jdk8.html</loc>
</url>
<url>
<loc>/docs/java-collections/095-why-hashmap-not-treeify-when-length-over-8.html</loc>
</url>
<url>
<loc>/docs/java-collections/096-can-hashmap-key-be-null.html</loc>
</url>
<url>
<loc>/docs/java-collections/097-hashtable-hashmap-concurrenthashmap-differences.html</loc>
</url>
<url>
<loc>/docs/java-collections/098-concurrenthashmap-implementation.html</loc>
</url>
<url>
<loc>/docs/java-collections/099-concurrenthashmap-jdk7-vs-jdk8.html</loc>
</url>
<url>
<loc>/docs/java-collections/100-linkedhashmap-implementation.html</loc>
</url>
<url>
<loc>/docs/java-collections/101-treemap-vs-hashmap.html</loc>
</url>
<url>
<loc>/docs/java-collections/102-weakhashmap-explained.html</loc>
</url>
<url>
<loc>/docs/java-collections/103-hashset-and-hashmap-relationship.html</loc>
</url>
<url>
<loc>/docs/java-collections/104-priorityqueue-implementation-principle.html</loc>
</url>
<url>
<loc>/docs/java-collections/105-arraydeque-vs-linkedlist-as-queue.html</loc>
</url>
<url>
<loc>/docs/java-collections/106-skiplist-vs-b-plus-tree.html</loc>
</url>
<url>
<loc>/docs/jvm/107-jvm-runtime-memory-areas.html</loc>
</url>
<url>
<loc>/docs/jvm/108-why-separate-heap-and-stack.html</loc>
</url>
<url>
<loc>/docs/jvm/109-is-jvm-heap-always-thread-shared.html</loc>
</url>
<url>
<loc>/docs/jvm/110-what-is-method-area.html</loc>
</url>
<url>
<loc>/docs/jvm/111-method-area-storage-contents.html</loc>
</url>
<url>
<loc>/docs/jvm/112-java-heap-generation-design.html</loc>
</url>
<url>
<loc>/docs/jvm/113-off-heap-memory-explained.html</loc>
</url>
<url>
<loc>/docs/jvm/114-outofmemory-vs-stackoverflow.html</loc>
</url>
<url>
<loc>/docs/jvm/115-jvm-stack-overflow-error.html</loc>
</url>
<url>
<loc>/docs/jvm/116-memory-leak-vs-memory-overflow.html</loc>
</url>
<url>
<loc>/docs/jvm/117-java-process-memory-composition.html</loc>
</url>
<url>
<loc>/docs/jvm/118-jvm-memory-structure-overview.html</loc>
</url>
<url>
<loc>/docs/jvm/119-jvm-object-creation-process.html</loc>
</url>
<url>
<loc>/docs/jvm/120-java-object-structure.html</loc>
</url>
<url>
<loc>/docs/jvm/121-empty-object-memory-size.html</loc>
</url>
<url>
<loc>/docs/jvm/122-object-allocation-thread-safety.html</loc>
</url>
<url>
<loc>/docs/jvm/123-java-object-memory-location.html</loc>
</url>
<url>
<loc>/docs/jvm/124-escape-analysis.html</loc>
</url>
<url>
<loc>/docs/jvm/125-metaspace-replaces-permgen.html</loc>
</url>
<url>
<loc>/docs/jvm/126-object-survival-detection.html</loc>
</url>
<url>
<loc>/docs/jvm/127-java-four-reference-types.html</loc>
</url>
<url>
<loc>/docs/jvm/128-jvm-garbage-collection-algorithms.html</loc>
</url>
<url>
<loc>/docs/jvm/129-young-old-generation-gc-algorithms.html</loc>
</url>
<url>
<loc>/docs/jvm/130-complete-gc-process-in-jvm.html</loc>
</url>
<url>
<loc>/docs/jvm/131-younggc-fullgc-trigger-conditions.html</loc>
</url>
<url>
<loc>/docs/jvm/132-how-often-fullgc-is-normal.html</loc>
</url>
<url>
<loc>/docs/jvm/133-tricolor-marking-algorithm.html</loc>
</url>
<url>
<loc>/docs/jvm/134-cross-generation-references.html</loc>
</url>
<url>
<loc>/docs/jvm/135-stop-the-world-stw-explained.html</loc>
</url>
<url>
<loc>/docs/jvm/136-safepoint-explained.html</loc>
</url>
<url>
<loc>/docs/jvm/137-cms-garbage-collection-process.html</loc>
</url>
<url>
<loc>/docs/jvm/138-g1-vs-cms-comparison.html</loc>
</url>
<url>
<loc>/docs/jvm/139-g1-default-garbage-collector.html</loc>
</url>
<url>
<loc>/docs/jvm/140-zgc-characteristics.html</loc>
</url>
<url>
<loc>/docs/jvm/141-java8-vs-java11-gc-differences.html</loc>
</url>
<url>
<loc>/docs/jvm/142-young-old-generation-collectors.html</loc>
</url>
<url>
<loc>/docs/jvm/143-garbage-collector-selection-strategy.html</loc>
</url>
<url>
<loc>/docs/jvm/144-concurrent-vs-parallel-gc.html</loc>
</url>
<url>
<loc>/docs/jvm/145-new-generation-eden-survivor-design.html</loc>
</url>
<url>
<loc>/docs/jvm/146-jvm-object-age-threshold.html</loc>
</url>
<url>
<loc>/docs/jvm/147-when-java-class-loaded.html</loc>
</url>
<url>
<loc>/docs/jvm/148-java-class-loading-process.html</loc>
</url>
<url>
<loc>/docs/jvm/149-java-class-loading.html</loc>
</url>
<url>
<loc>/docs/jvm/150-class-lifecycle-in-jvm.html</loc>
</url>
<url>
<loc>/docs/jvm/151-parent-delegation-model.html</loc>
</url>
<url>
<loc>/docs/jvm/152-parent-delegation-core-idea.html</loc>
</url>
<url>
<loc>/docs/jvm/153-how-to-break-parent-delegation-detailed.html</loc>
</url>
<url>
<loc>/docs/jvm/154-can-override-string-after-breaking-parent-delegation.html</loc>
</url>
<url>
<loc>/docs/jvm/155-how-to-determine-same-class-in-jvm.html</loc>
</url>
<url>
<loc>/docs/jvm/156-classloader-differences-jdk8-vs-jdk9.html</loc>
</url>
<url>
<loc>/docs/jvm/157-class-constant-pool-vs-runtime-constant-pool.html</loc>
</url>
<url>
<loc>/docs/jvm/158-runtime-constant-pool-vs-string-pool.html</loc>
</url>
<url>
<loc>/docs/jvm/159-string-pool-implementation.html</loc>
</url>
<url>
<loc>/docs/jvm/160-compilation-decompilation-concepts.html</loc>
</url>
<url>
<loc>/docs/jvm/161-java-platform-independence-limitations.html</loc>
</url>
<url>
<loc>/docs/jvm/162-java-platform-independence.html</loc>
</url>
<url>
<loc>/docs/jvm/163-java-compiled-or-interpreted.html</loc>
</url>
<url>
<loc>/docs/jvm/164-aot-vs-jit-compilation.html</loc>
</url>
<url>
<loc>/docs/jvm/165-jit-optimization-techniques.html</loc>
</url>
<url>
<loc>/docs/jvm/166-common-jvm-tools.html</loc>
</url>
<url>
<loc>/docs/jvm/167-jvm-tuning-parameters.html</loc>
</url>
<url>
<loc>/docs/jvm/168-common-jvm-startup-parameters.html</loc>
</url>
<url>
<loc>/docs/jvm/169-will-oom-cause-jvm-exit.html</loc>
</url>
<url>
<loc>/docs/jvm/170-what-causes-jvm-exit.html</loc>
</url>
<url>
<loc>/docs/jvm/171-impact-of-kill-9-on-jvm.html</loc>
</url>
<url>
<loc>/docs/jvm/172-spi-vs-api.html</loc>
</url>
<url>
<loc>/docs/concurrent/173-thread-creation-methods.html</loc>
</url>
<url>
<loc>/docs/concurrent/174-thread-states-and-transitions.html</loc>
</url>
<url>
<loc>/docs/concurrent/175-thread-alive-check.html</loc>
</url>
<url>
<loc>/docs/concurrent/176-thread-sleep-zero.html</loc>
</url>
<url>
<loc>/docs/concurrent/177-daemon-thread.html</loc>
</url>
<url>
<loc>/docs/concurrent/178-thread-context-switch.html</loc>
</url>
<url>
<loc>/docs/concurrent/179-thread-scheduling.html</loc>
</url>
<url>
<loc>/docs/concurrent/180-thread-synchronization-methods.html</loc>
</url>
<url>
<loc>/docs/concurrent/181-deadlock-solution.html</loc>
</url>
<url>
<loc>/docs/concurrent/182-thread-methods-comparison.html</loc>
</url>
<url>
<loc>/docs/concurrent/183-thread-termination-methods.html</loc>
</url>
<url>
<loc>/docs/concurrent/184-how-to-print-thread-stack.html</loc>
</url>
<url>
<loc>/docs/concurrent/185-concurrency-vs-parallelism.html</loc>
</url>
<url>
<loc>/docs/concurrent/186-thread-safety-understanding.html</loc>
</url>
<url>
<loc>/docs/concurrent/187-thread-safety-solutions.html</loc>
</url>
<url>
<loc>/docs/concurrent/188-atomicity-concurrency-vs-database.html</loc>
</url>
<url>
<loc>/docs/concurrent/189-instruction-reordering.html</loc>
</url>
<url>
<loc>/docs/concurrent/190-final-keyword-visibility.html</loc>
</url>
<url>
<loc>/docs/concurrent/191-sync-vs-async.html</loc>
</url>
<url>
<loc>/docs/concurrent/192-what-is-java-memory-model.html</loc>
</url>
<url>
<loc>/docs/concurrent/193-what-is-happens-before.html</loc>
</url>
<url>
<loc>/docs/concurrent/194-happens-before-vs-as-if-serial.html</loc>
</url>
<url>
<loc>/docs/concurrent/195-why-jmm-when-mesi-exists.html</loc>
</url>
<url>
<loc>/docs/concurrent/196-bus-snooping-and-bus-storm.html</loc>
</url>
<url>
<loc>/docs/concurrent/197-memory-barrier-explained.html</loc>
</url>
<url>
<loc>/docs/concurrent/198-volatile-atomicity.html</loc>
</url>
<url>
<loc>/docs/concurrent/199-volatile-vs-synchronized.html</loc>
</url>
<url>
<loc>/docs/concurrent/200-volatile-visibility-ordering.html</loc>
</url>
<url>
<loc>/docs/concurrent/201-volatile-multithreading-visibility.html</loc>
</url>
<url>
<loc>/docs/concurrent/202-what-is-cas.html</loc>
</url>
<url>
<loc>/docs/concurrent/203-cas-introduction.html</loc>
</url>
<url>
<loc>/docs/concurrent/204-cas-atomic-classes.html</loc>
</url>
<url>
<loc>/docs/concurrent/205-cas-spin.html</loc>
</url>
<url>
<loc>/docs/concurrent/206-cas-os-atomicity.html</loc>
</url>
<url>
<loc>/docs/concurrent/207-cas-volatile-relationship.html</loc>
</url>
<url>
<loc>/docs/concurrent/208-aba-problem.html</loc>
</url>
<url>
<loc>/docs/concurrent/209-what-is-unsafe.html</loc>
</url>
<url>
<loc>/docs/concurrent/210-synchronized-implementation.html</loc>
</url>
<url>
<loc>/docs/concurrent/211-synchronized-lock-target.html</loc>
</url>
<url>
<loc>/docs/concurrent/212-synchronized-atomicity-visibility-ordering.html</loc>
</url>
<url>
<loc>/docs/concurrent/213-synchronized-lock-optimization.html</loc>
</url>
<url>
<loc>/docs/concurrent/214-synchronized-lock-upgrade.html</loc>
</url>
<url>
<loc>/docs/concurrent/215-synchronized-spin-times.html</loc>
</url>
<url>
<loc>/docs/concurrent/216-synchronized-lock-downgrade.html</loc>
</url>
<url>
<loc>/docs/concurrent/217-why-jdk15-deprecate-biased-locking.html</loc>
</url>
<url>
<loc>/docs/concurrent/218-synchronized-reentrant.html</loc>
</url>
<url>
<loc>/docs/concurrent/219-synchronized-fairness.html</loc>
</url>
<url>
<loc>/docs/concurrent/220-synchronized-vs-reentrantlock.html</loc>
</url>
<url>
<loc>/docs/concurrent/221-synchronized-vs-lock.html</loc>
</url>
<url>
<loc>/docs/concurrent/222-int-assignment-atomicity.html</loc>
</url>
<url>
<loc>/docs/concurrent/223-thread-safe-increment.html</loc>
</url>
<url>
<loc>/docs/concurrent/224-understanding-aqs.html</loc>
</url>
<url>
<loc>/docs/concurrent/225-aqs-sync-queue-and-condition-queue.html</loc>
</url>
<url>
<loc>/docs/concurrent/226-aqs-thread-wait-and-wakeup.html</loc>
</url>
<url>
<loc>/docs/concurrent/227-why-aqs-uses-doubly-linked-list.html</loc>
</url>
<url>
<loc>/docs/concurrent/228-aqs-exclusive-and-shared-mode.html</loc>
</url>
<url>
<loc>/docs/concurrent/229-aqs-utility-classes.html</loc>
</url>
<url>
<loc>/docs/concurrent/230-reentrant-lock-concept-and-implementation.html</loc>
</url>
<url>
<loc>/docs/concurrent/231-reentrant-lock-implementation.html</loc>
</url>
<url>
<loc>/docs/concurrent/232-fair-lock-vs-unfair-lock.html</loc>
</url>
<url>
<loc>/docs/concurrent/233-lock-fairness-implementation.html</loc>
</url>
<url>
<loc>/docs/concurrent/234-reentrantlock-advanced-features.html</loc>
</url>
<url>
<loc>/docs/concurrent/235-what-is-thread-pool-and-implementation.html</loc>
</url>
<url>
<loc>/docs/concurrent/236-forkjoinpool-vs-threadpoolexecutor.html</loc>
</url>
<url>
<loc>/docs/concurrent/237-thread-pool-rejection-policies.html</loc>
</url>
<url>
<loc>/docs/concurrent/238-why-not-use-executors.html</loc>
</url>
<url>
<loc>/docs/concurrent/239-optimal-thread-pool-size.html</loc>
</url>
<url>
<loc>/docs/concurrent/240-sequential-task-execution-in-thread-pool.html</loc>
</url>
<url>
<loc>/docs/concurrent/241-dynamic-thread-pool-implementation.html</loc>
</url>
<url>
<loc>/docs/concurrent/242-threadpool-volatile-visibility.html</loc>
</url>
<url>
<loc>/docs/concurrent/243-thread-pool-states-and-results.html</loc>
</url>
<url>
<loc>/docs/concurrent/244-thread-pool-principle-and-params.html</loc>
</url>
<url>
<loc>/docs/concurrent/245-thread-pool-parameters.html</loc>
</url>
<url>
<loc>/docs/concurrent/246-future-blocking-wait.html</loc>
</url>
<url>
<loc>/docs/concurrent/247-safely-interrupt-thread.html</loc>
</url>
<url>
<loc>/docs/concurrent/248-completablefuture-implementation.html</loc>
</url>
<url>
<loc>/docs/concurrent/249-multi-thread-orchestration.html</loc>
</url>
<url>
<loc>/docs/concurrent/250-countdownlatch-cyclicbarrier-semaphore-differences.html</loc>
</url>
<url>
<loc>/docs/concurrent/251-longadder-vs-atomiclong.html</loc>
</url>
<url>
<loc>/docs/concurrent/252-what-is-threadlocal-and-how-it-works.html</loc>
</url>
<url>
<loc>/docs/concurrent/253-threadlocalmap-data-structure.html</loc>
</url>
<url>
<loc>/docs/concurrent/254-threadlocalmap-collision-resolution.html</loc>
</url>
<url>
<loc>/docs/concurrent/255-threadlocalmap-resize-mechanism.html</loc>
</url>
<url>
<loc>/docs/concurrent/256-threadlocal-memory-leak-causes-and-solutions.html</loc>
</url>
<url>
<loc>/docs/concurrent/257-threadlocal-weak-reference-and-gc.html</loc>
</url>
<url>
<loc>/docs/concurrent/258-threadlocal-use-cases.html</loc>
</url>
<url>
<loc>/docs/concurrent/259-inheritablethreadlocal-vs-transmittablethreadlocal.html</loc>
</url>
<url>
<loc>/docs/concurrent/260-threadlocalmap-expunge-and-clean-mechanisms.html</loc>
</url>
<url>
<loc>/docs/concurrent/261-parent-child-thread-data-sharing.html</loc>
</url>
<url>
<loc>/docs/concurrent/262-fork-join-framework.html</loc>
</url>
<url>
<loc>/docs/concurrent/263-understanding-timing-wheel.html</loc>
</url>
<url>
<loc>/docs/concurrent/264-bounded-vs-unbounded-blocking-queue.html</loc>
</url>
<url>
<loc>/docs/concurrent/265-why-cannot-catch-child-thread-exception-in-try-catch.html</loc>
</url>
<url>
<loc>/docs/concurrent/266-how-to-catch-child-thread-exceptions.html</loc>
</url>
<url>
<loc>/docs/concurrent/267-thread-exception-not-exit-process.html</loc>
</url>
<url>
<loc>/docs/concurrent/268-three-threads-sequential-execution.html</loc>
</url>
<url>
<loc>/docs/concurrent/269-three-threads-print-sequentially.html</loc>
</url>
<url>
<loc>/docs/concurrent/270-jdk21-virtual-threads-introduction.html</loc>
</url>
<url>
<loc>/docs/concurrent/271-why-virtual-threads-avoid-synchronized.html</loc>
</url>
<url>
<loc>/docs/concurrent/272-why-virtual-threads-avoid-thread-pools.html</loc>
</url>
<url>
<loc>/docs/concurrent/273-why-virtual-threads-avoid-threadlocal.html</loc>
</url>
<url>
<loc>/docs/mysql/274-why-innodb-uses-b-plus-tree-index.html</loc>
</url>
<url>
<loc>/docs/mysql/275-innodb-index-types.html</loc>
</url>
<url>
<loc>/docs/mysql/276-clustered-vs-non-clustered-index.html</loc>
</url>
<url>
<loc>/docs/mysql/277-what-is-index-lookup-and-how-to-reduce.html</loc>
</url>
<url>
<loc>/docs/mysql/278-covering-index-and-index-condition-pushdown.html</loc>
</url>
<url>
<loc>/docs/mysql/279-innodb-vs-myisam-differences.html</loc>
</url>
<url>
<loc>/docs/mysql/280-myisam-index-structure-and-problems.html</loc>
</url>
<url>
<loc>/docs/mysql/281-unique-index-vs-primary-key-index.html</loc>
</url>
<url>
<loc>/docs/mysql/282-mysql-unique-index-guarantee.html</loc>
</url>
<url>
<loc>/docs/mysql/283-why-index-key-length-limit.html</loc>
</url>
<url>
<loc>/docs/mysql/284-mysql-leftmost-prefix-matching.html</loc>
</url>
<url>
<loc>/docs/mysql/285-mysql-leftmost-prefix-exceptions.html</loc>
</url>
<url>
<loc>/docs/mysql/286-mysql-composite-index-usage-patterns.html</loc>
</url>
<url>
<loc>/docs/mysql/287-mysql-dual-index-selection.html</loc>
</url>
<url>
<loc>/docs/mysql/288-mysql-index-merge-explained.html</loc>
</url>
<url>
<loc>/docs/mysql/289-mysql-index-skip-scan.html</loc>
</url>
<url>
<loc>/docs/mysql/290-mysql-index-design-principles.html</loc>
</url>
<url>
<loc>/docs/mysql/291-mysql-low-selectivity-index.html</loc>
</url>
<url>
<loc>/docs/mysql/292-mysql-too-many-indexes.html</loc>
</url>
<url>
<loc>/docs/mysql/293-mysql-index-creation-and-performance.html</loc>
</url>
<url>
<loc>/docs/mysql/294-mysql-index-storage-and-invalidation.html</loc>
</url>
<url>
<loc>/docs/mysql/295-mysql-index-failure-scenarios.html</loc>
</url>
<url>
<loc>/docs/mysql/296-mysql-index-comprehensive-guide.html</loc>
</url>
<url>
<loc>/docs/mysql/297-mysql-index-slow-despite-usage.html</loc>
</url>
<url>
<loc>/docs/mysql/298-mysql-index-failure-troubleshooting.html</loc>
</url>
<url>
<loc>/docs/mysql/299-mysql-wrong-index-selection.html</loc>
</url>
<url>
<loc>/docs/mysql/300-three-ways-to-create-index.html</loc>
</url>
<url>
<loc>/docs/mysql/301-why-index-is-faster.html</loc>
</url>
<url>
<loc>/docs/mysql/302-where-condition-order-index.html</loc>
</url>
<url>
<loc>/docs/mysql/303-uuid-vs-auto-increment-id-as-primary-key.html</loc>
</url>
<url>
<loc>/docs/mysql/304-char-vs-varchar.html</loc>
</url>
<url>
<loc>/docs/mysql/305-varchar-length-and-comparison.html</loc>
</url>
<url>
<loc>/docs/mysql/306-blob-vs-text.html</loc>
</url>
<url>
<loc>/docs/mysql/307-varchar-vs-char-for-md5.html</loc>
</url>
<url>
<loc>/docs/mysql/308-understanding-nosql.html</loc>
</url>
<url>
<loc>/docs/mysql/309-what-is-database-transaction.html</loc>
</url>
<url>
<loc>/docs/mysql/310-mysql-acid-implementation.html</loc>
</url>
<url>
<loc>/docs/mysql/311-mysql-transaction-isolation-levels.html</loc>
</url>
<url>
<loc>/docs/mysql/312-dirty-read-phantom-read-non-repeatable-read.html</loc>
</url>
<url>
<loc>/docs/mysql/313-how-innodb-solves-read-problems.html</loc>
</url>
<url>
<loc>/docs/mysql/314-does-innodb-rr-solve-phantom-read.html</loc>
</url>
<url>
<loc>/docs/mysql/315-understanding-mvcc.html</loc>
</url>
<url>
<loc>/docs/mysql/316-what-is-readview.html</loc>
</url>
<url>
<loc>/docs/mysql/317-current-read-vs-snapshot-read.html</loc>
</url>
<url>
<loc>/docs/mysql/318-secondary-index-mvcc-with-covering-index.html</loc>
</url>
<url>
<loc>/docs/mysql/319-why-mysql-default-rr-isolation-level.html</loc>
</url>
<url>
<loc>/docs/mysql/320-why-change-rr-to-rc-in-production.html</loc>
</url>
<url>
<loc>/docs/mysql/321-mysql-select-and-transaction.html</loc>
</url>
<url>
<loc>/docs/mysql/322-database-isolation-levels-and-locks.html</loc>
</url>
<url>
<loc>/docs/mysql/323-innodb-lock-mechanism.html</loc>
</url>
<url>
<loc>/docs/mysql/324-innodb-table-page-row-locks.html</loc>
</url>
<url>
<loc>/docs/mysql/325-mysql-row-lock-target.html</loc>
</url>
<url>
<loc>/docs/mysql/326-exclusive-lock-and-shared-lock.html</loc>
</url>
<url>
<loc>/docs/mysql/327-intention-locks.html</loc>
</url>
<url>
<loc>/docs/mysql/328-for-update-locks-in-innodb.html</loc>
</url>
<url>
<loc>/docs/mysql/329-mysql-metadata-lock.html</loc>
</url>
<url>
<loc>/docs/mysql/330-mysql-deadlock-on-same-row.html</loc>
</url>
<url>
<loc>/docs/mysql/331-database-deadlock-solutions.html</loc>
</url>
<url>
<loc>/docs/mysql/332-mysql-lock-mechanism-overview.html</loc>
</url>
<url>
<loc>/docs/mysql/333-optimistic-and-pessimistic-locks.html</loc>
</url>
<url>
<loc>/docs/mysql/334-optimistic-lock-no-database-locks.html</loc>
</url>
<url>
<loc>/docs/mysql/335-database-lock-escalation.html</loc>
</url>
<url>
<loc>/docs/mysql/336-innodb-add-index-table-lock.html</loc>
</url>
<url>
<loc>/docs/mysql/337-mysql-concurrency-control.html</loc>
</url>
<url>
<loc>/docs/mysql/338-mysql-sql-execution-process.html</loc>
</url>
<url>
<loc>/docs/mysql/339-sql-query-execution-order.html</loc>
</url>
<url>
<loc>/docs/mysql/340-why-avoid-multi-table-join.html</loc>
</url>
<url>
<loc>/docs/mysql/341-on-vs-where-difference.html</loc>
</url>
<url>
<loc>/docs/mysql/342-sql-execution-plan-key-points.html</loc>
</url>
<url>
<loc>/docs/mysql/343-mysql-optimizer-index-cost.html</loc>
</url>
<url>
<loc>/docs/mysql/344-how-to-optimize-sql-queries.html</loc>
</url>
<url>
<loc>/docs/mysql/345-how-to-troubleshoot-slow-sql.html</loc>
</url>
<url>
<loc>/docs/mysql/346-explain-key-exists-but-still-slow.html</loc>
</url>
<url>
<loc>/docs/mysql/347-how-mysql-order-by-works.html</loc>
</url>
<url>
<loc>/docs/mysql/348-optimize-using-filesort.html</loc>
</url>
<url>
<loc>/docs/mysql/349-mysql-deep-pagination-optimization.html</loc>
</url>
<url>
<loc>/docs/mysql/350-limit-shallow-vs-deep-pagination.html</loc>
</url>
<url>
<loc>/docs/mysql/351-mysql-limit-order-by-duplicate-data.html</loc>
</url>
<url>
<loc>/docs/mysql/352-mysql-like-query-optimization.html</loc>
</url>
<url>
<loc>/docs/mysql/353-small-table-drives-large-table.html</loc>
</url>
<url>
<loc>/docs/mysql/354-mysql-slow-query-optimization.html</loc>
</url>
<url>
<loc>/docs/mysql/355-mysql-slow-query-troubleshooting.html</loc>
</url>
<url>
<loc>/docs/mysql/356-comprehensive-mysql-optimization.html</loc>
</url>
<url>
<loc>/docs/mysql/357-count-1-vs-count-star-vs-count-col.html</loc>
</url>
<url>
<loc>/docs/mysql/358-union-vs-union-all.html</loc>
</url>
<url>
<loc>/docs/mysql/359-drop-vs-delete-vs-truncate.html</loc>
</url>
<url>
<loc>/docs/mysql/360-sql-constraints.html</loc>
</url>
<url>
<loc>/docs/mysql/361-mysql-storage-engines.html</loc>
</url>
<url>
<loc>/docs/mysql/362-innodb-buffer-pool.html</loc>
</url>
<url>
<loc>/docs/mysql/363-buffer-pool-read-write-process.html</loc>
</url>
<url>
<loc>/docs/mysql/364-innodb-row-formats.html</loc>
</url>
<url>
<loc>/docs/mysql/365-innodb-data-page-and-btree.html</loc>
</url>
<url>
<loc>/docs/mysql/366-innodb-page-split-and-merge.html</loc>
</url>
<url>
<loc>/docs/mysql/367-stored-procedures-pros-and-cons.html</loc>
</url>
<url>
<loc>/docs/mysql/368-mysql-two-phase-commit.html</loc>
</url>
<url>
<loc>/docs/mysql/369-innodb-update-transaction-implementation.html</loc>
</url>
<url>
<loc>/docs/mysql/370-undolog-lifecycle-and-purge.html</loc>
</url>
<url>
<loc>/docs/mysql/371-mysql-group-commit-explained.html</loc>
</url>
<url>
<loc>/docs/mysql/372-mysql-large-transaction-problems.html</loc>
</url>
<url>
<loc>/docs/mysql/373-mysql-binlog-redolog-undolog-difference.html</loc>
</url>
<url>
<loc>/docs/mysql/374-mysql-master-slave-replication-process.html</loc>
</url>
<url>
<loc>/docs/mysql/375-mysql-parallel-replication-principle.html</loc>
</url>
<url>
<loc>/docs/mysql/376-mysql-replication-overview.html</loc>
</url>
<url>
<loc>/docs/mysql/377-mysql-binlog-formats.html</loc>
</url>
<url>
<loc>/docs/mysql/378-mysql-three-logs-and-replication.html</loc>
</url>
<url>
<loc>/docs/mysql/379-mysql-three-logs-comprehensive-guide.html</loc>
</url>
<url>
<loc>/docs/mysql/380-database-master-slave-replication-lag.html</loc>
</url>
<url>
<loc>/docs/mysql/381-database-read-write-splitting-code-implementation.html</loc>
</url>
<url>
<loc>/docs/mysql/382-mysql-ap-or-cp-system.html</loc>
</url>
<url>
<loc>/docs/mysql/383-what-is-online-ddl.html</loc>
</url>
<url>
<loc>/docs/mysql/384-mysql-architecture.html</loc>
</url>
<url>
<loc>/docs/mysql/385-mysql-hotspot-data-update.html</loc>
</url>
<url>
<loc>/docs/mysql/386-mysql-auto-increment-concurrency.html</loc>
</url>
<url>
<loc>/docs/mysql/387-mysql-auto-increment-exhausted.html</loc>
</url>
<url>
<loc>/docs/mysql/388-mysql-auto-increment-gaps.html</loc>
</url>
<url>
<loc>/docs/mysql/389-mysql-auto-increment-bottleneck.html</loc>
</url>
<url>
<loc>/docs/mysql/390-database-scan-deadloop-prevention.html</loc>
</url>
<url>
<loc>/docs/mysql/391-database-encryption-decryption.html</loc>
</url>
<url>
<loc>/docs/mysql/392-encrypted-data-fuzzy-search.html</loc>
</url>
<url>
<loc>/docs/mysql/393-mysql-emoji-storage.html</loc>
</url>
<url>
<loc>/docs/mysql/394-alibaba-database-anti-spike.html</loc>
</url>
<url>
<loc>/docs/mysql/395-mysql-sharding-strategies.html</loc>
</url>
<url>
<loc>/docs/mysql/396-mysql-driving-table-selection.html</loc>
</url>
<url>
<loc>/docs/mysql/397-safely-delete-million-rows.html</loc>
</url>
<url>
<loc>/docs/mysql/398-ensure-mysql-data-integrity.html</loc>
</url>
<url>
<loc>/docs/redis/399-redis-7-new-features.html</loc>
</url>
<url>
<loc>/docs/redis/400-redis-data-structures-overview.html</loc>
</url>
<url>
<loc>/docs/redis/401-redis-underlying-structures.html</loc>
</url>
<url>
<loc>/docs/redis/402-redis-listpack-structure.html</loc>
</url>
<url>
<loc>/docs/redis/403-redis-sds-structure.html</loc>
</url>
<url>
<loc>/docs/redis/404-redis-dict-structure.html</loc>
</url>
<url>
<loc>/docs/redis/405-redis-string-implementation.html</loc>
</url>
<url>
<loc>/docs/redis/406-redis-list-implementation.html</loc>
</url>
<url>
<loc>/docs/redis/407-redis-hash-implementation.html</loc>
</url>
<url>
<loc>/docs/redis/408-redis-set-implementation.html</loc>
</url>
<url>
<loc>/docs/redis/409-redis-zset-implementation.html</loc>
</url>
<url>
<loc>/docs/redis/410-redis-skiplist-explained.html</loc>
</url>
<url>
<loc>/docs/redis/411-redis-skiplist-hash-ziplist-expansion.html</loc>
</url>
<url>
<loc>/docs/redis/412-redis-hyperloglog-explained.html</loc>
</url>
<url>
<loc>/docs/redis/413-redis-advantages-and-problems-solved.html</loc>
</url>
<url>
<loc>/docs/redis/414-redis-persistence-mechanisms.html</loc>
</url>
<url>
<loc>/docs/redis/415-rdb-vs-aof-differences.html</loc>
</url>
<url>
<loc>/docs/redis/416-redis-aof-write-process-and-fsync.html</loc>
</url>
<url>
<loc>/docs/redis/417-redis-recovery-rdb-vs-aof.html</loc>
</url>
<url>
<loc>/docs/redis/418-redis-master-slave-replication-principle.html</loc>
</url>
<url>
<loc>/docs/redis/419-redis-replication-process-detailed.html</loc>
</url>
<url>
<loc>/docs/redis/420-how-redis-achieves-high-availability.html</loc>
</url>
<url>
<loc>/docs/redis/421-redis-sentinel-mode.html</loc>
</url>
<url>
<loc>/docs/redis/422-redis-sentinel-leader-election-strategy.html</loc>
</url>
<url>
<loc>/docs/redis/423-redis-cluster-mode.html</loc>
</url>
<url>
<loc>/docs/redis/424-redis-lazy-deletion.html</loc>
</url>
<url>
<loc>/docs/redis/425-redis-background-io.html</loc>
</url>
<url>
<loc>/docs/redis/426-redis-threading-model.html</loc>
</url>
<url>
<loc>/docs/redis/427-redis-7-memory-optimization.html</loc>
</url>
<url>
<loc>/docs/redis/428-redis-transaction.html</loc>
</url>
<url>
<loc>/docs/redis/429-redis-cache-penetration-breakdown-avalanche.html</loc>
</url>
<url>
<loc>/docs/redis/430-redis-big-key-problem.html</loc>
</url>
<url>
<loc>/docs/redis/431-redis-hotkey-solution.html</loc>
</url>
<url>
<loc>/docs/redis/432-redis-expiration-strategy.html</loc>
</url>
<url>
<loc>/docs/redis/433-redis-memory-eviction-policy.html</loc>
</url>
<url>
<loc>/docs/redis/434-redis-distributed-lock-implementation.html</loc>
</url>
<url>
<loc>/docs/redis/435-redis-cache-consistency.html</loc>
</url>
<url>
<loc>/docs/redis/436-what-is-redlock.html</loc>
</url>
<url>
<loc>/docs/redis/437-redis-stream-as-message-queue.html</loc>
</url>
<url>
<loc>/docs/redis/438-redis-7-delayed-queue-implementation.html</loc>
</url>
<url>
<loc>/docs/redis/439-redis-7-bloom-filter-implementation.html</loc>
</url>
<url>
<loc>/docs/redis/440-redis-7-rate-limiting-implementation.html</loc>
</url>
<url>
<loc>/docs/redis/441-redis-7-resp-protocol.html</loc>
</url>
<url>
<loc>/docs/redis/442-redis-6-0-multithreading.html</loc>
</url>
<url>
<loc>/docs/redis/443-redis-data-deduplication.html</loc>
</url>
<url>
<loc>/docs/redis/444-redis-project-usage.html</loc>
</url>
<url>
<loc>/docs/redis/445-redisson-watchdog-principle.html</loc>
</url>
<url>
<loc>/docs/spring/446-spring-ioc-introduction.html</loc>
</url>
<url>
<loc>/docs/spring/447-why-use-spring-framework.html</loc>
</url>
<url>
<loc>/docs/spring/448-spring-ioc-aop-overview.html</loc>
</url>
<url>
<loc>/docs/spring/449-spring-bean-thread-safety.html</loc>
</url>
<url>
<loc>/docs/spring/450-spring-bean-initialization.html</loc>
</url>
<url>
<loc>/docs/spring/451-spring-bean-lifecycle.html</loc>
</url>
<url>
<loc>/docs/spring/452-spring-bean-scopes.html</loc>
</url>
<url>
<loc>/docs/spring/453-spring-lazy-circular-dependency.html</loc>
</url>
<url>
<loc>/docs/spring/454-spring-circular-dependency.html</loc>
</url>
<url>
<loc>/docs/spring/455-spring-three-level-cache.html</loc>
</url>
<url>
<loc>/docs/spring/456-spring-aop-introduction.html</loc>
</url>
<url>
<loc>/docs/spring/457-spring-aop-advice-types.html</loc>
</url>
<url>
<loc>/docs/spring/458-spring-aop-dynamic-proxy.html</loc>
</url>
<url>
<loc>/docs/spring/459-spring-aop-failure-scenarios.html</loc>
</url>
<url>
<loc>/docs/spring/460-how-to-enable-transaction-in-spring.html</loc>
</url>
<url>
<loc>/docs/spring/461-spring-transaction-propagation-mechanisms.html</loc>
</url>
<url>
<loc>/docs/spring/462-spring-transaction-failure-causes.html</loc>
</url>
<url>
<loc>/docs/spring/463-spring-transaction-overview.html</loc>
</url>
<url>
<loc>/docs/spring/464-transactional-annotation-principle.html</loc>
</url>
<url>
<loc>/docs/spring/465-spring-transaction-in-multithreading.html</loc>
</url>
<url>
<loc>/docs/spring/466-transactional-with-async-annotation.html</loc>
</url>
<url>
<loc>/docs/spring/467-spring-transaction-event-usage.html</loc>
</url>
<url>
<loc>/docs/spring/468-why-not-use-spring-async-directly.html</loc>
</url>
<url>
<loc>/docs/spring/469-springboot-vs-spring-differences.html</loc>
</url>
<url>
<loc>/docs/spring/470-why-choose-spring-boot.html</loc>
</url>
<url>
<loc>/docs/spring/471-convention-over-configuration.html</loc>
</url>
<url>
<loc>/docs/spring/472-springboot-core-modules.html</loc>
</url>
<url>
<loc>/docs/spring/473-springboot-autoconfiguration-principle.html</loc>
</url>
<url>
<loc>/docs/spring/474-springboot-startup-process.html</loc>
</url>
<url>
<loc>/docs/spring/475-springboot-main-method-web-startup.html</loc>
</url>
<url>
<loc>/docs/spring/476-spring6-springboot3-new-features.html</loc>
</url>
<url>
<loc>/docs/spring/477-why-springboot3-removed-spring-factories.html</loc>
</url>
<url>
<loc>/docs/spring/478-springboot-graceful-shutdown.html</loc>
</url>
<url>
<loc>/docs/spring/479-benefits-of-springmvc-three-tier-architecture.html</loc>
</url>
<url>
<loc>/docs/spring/480-design-patterns-in-spring-framework.html</loc>
</url>
<url>
<loc>/docs/spring/481-how-to-create-custom-springboot-starter.html</loc>
</url>
<url>
<loc>/docs/spring/482-implement-springboot-starter-example.html</loc>
</url>
<url>
<loc>/docs/spring/483-mybatis-pagination.html</loc>
</url>
<url>
<loc>/docs/spring/484-mybatis-placeholder-difference.html</loc>
</url>
<url>
<loc>/docs/spring/485-mybatis-cache-levels.html</loc>
</url>
<url>
<loc>/docs/design-patterns/486-singleton-pattern-implementation.html</loc>
</url>
<url>
<loc>/docs/design-patterns/487-factory-pattern-explained.html</loc>
</url>
<url>
<loc>/docs/design-patterns/488-strategy-pattern-explained.html</loc>
</url>
<url>
<loc>/docs/design-patterns/489-template-method-pattern-explained.html</loc>
</url>
<url>
<loc>/docs/design-patterns/490-chain-of-responsibility-pattern-explained.html</loc>
</url>
<url>
<loc>/docs/design-patterns/491-observer-pattern-explained.html</loc>
</url>
<url>
<loc>/docs/design-patterns/492-strategy-pattern-vs-proxy-pattern.html</loc>
</url>
<url>
<loc>/docs/distributed-theory/493-what-is-cap-theorem.html</loc>
</url>
<url>
<loc>/docs/distributed-theory/494-what-is-base-theorem.html</loc>
</url>
<url>
<loc>/docs/distributed-theory/495-cap-acid-base-consistency-models.html</loc>
</url>
<url>
<loc>/docs/distributed-theory/496-what-is-eventual-consistency.html</loc>
</url>
<url>
<loc>/docs/distributed-theory/497-consistent-hashing.html</loc>
</url>
<url>
<loc>/docs/distributed-theory/498-idempotency-solutions.html</loc>
</url>
<url>
<loc>/docs/distributed-theory/499-paxos-protocol-workflow.html</loc>
</url>
<url>
<loc>/docs/distributed-theory/500-raft-algorithm-principles.html</loc>
</url>
<url>
<loc>/docs/distributed-id/501-distributed-id-generation-solutions.html</loc>
</url>
<url>
<loc>/docs/distributed-id/502-snowflake-algorithm.html</loc>
</url>
<url>
<loc>/docs/distributed-transaction/503-what-is-distributed-transaction.html</loc>
</url>
<url>
<loc>/docs/distributed-transaction/504-distributed-transaction-solutions.html</loc>
</url>
<url>
<loc>/docs/distributed-transaction/505-distributed-transaction-solutions-comparison.html</loc>
</url>
<url>
<loc>/docs/distributed-transaction/506-what-is-2pc-and-3pc.html</loc>
</url>
<url>
<loc>/docs/distributed-transaction/507-what-is-tcc.html</loc>
</url>
<url>
<loc>/docs/distributed-transaction/508-what-is-saga.html</loc>
</url>
<url>
<loc>/docs/distributed-transaction/509-seata-at-mode-explained.html</loc>
</url>
<url>
<loc>/docs/distributed-lock/510-what-is-distributed-lock.html</loc>
</url>
<url>
<loc>/docs/distributed-lock/511-distributed-lock-implementations.html</loc>
</url>
<url>
<loc>/docs/distributed-lock/512-redis-distributed-lock-principle.html</loc>
</url>
<url>
<loc>/docs/distributed-lock/513-zookeeper-distributed-lock-principle.html</loc>
</url>
<url>
<loc>/docs/sharding/514-what-is-database-sharding.html</loc>
</url>
<url>
<loc>/docs/sharding/515-when-to-use-database-sharding.html</loc>
</url>
<url>
<loc>/docs/sharding/516-database-sharding-strategies.html</loc>
</url>
<url>
<loc>/docs/sharding/517-cross-database-query-solutions.html</loc>
</url>
<url>
<loc>/docs/sharding/518-distributed-transaction-in-sharding.html</loc>
</url>
<url>
<loc>/docs/sharding/519-shardingsphere-principle.html</loc>
</url>
<url>
<loc>/docs/microservices/520-what-is-microservices.html</loc>
</url>
<url>
<loc>/docs/microservices/521-springcloud-core-components.html</loc>
</url>
<url>
<loc>/docs/microservices/522-eureka-working-principle.html</loc>
</url>
<url>
<loc>/docs/microservices/523-ribbon-load-balancing-strategies.html</loc>
</url>
<url>
<loc>/docs/microservices/524-feign-working-principle.html</loc>
</url>
<url>
<loc>/docs/microservices/525-hystrix-circuit-breaker.html</loc>
</url>
<url>
<loc>/docs/microservices/526-gateway-working-principle.html</loc>
</url>
<url>
<loc>/docs/microservices/527-nacos-vs-eureka.html</loc>
</url>
<url>
<loc>/docs/microservices/528-load-balance-strategies.html</loc>
</url>
<url>
<loc>/docs/microservices/529-nacos-service-registration-discovery.html</loc>
</url>
<url>
<loc>/docs/microservices/530-nacos-health-check-mechanism.html</loc>
</url>
<url>
<loc>/docs/microservices/531-nacos-self-protection-principle.html</loc>
</url>
<url>
<loc>/docs/microservices/532-nacos-event-listener-design.html</loc>
</url>
<url>
<loc>/docs/microservices/533-nacos-high-availability.html</loc>
</url>
<url>
<loc>/docs/microservices/534-nacos-design-defects.html</loc>
</url>
<url>
<loc>/docs/message-queue/535-why-use-message-queue.html</loc>
</url>
<url>
<loc>/docs/message-queue/536-message-queue-use-cases.html</loc>
</url>
<url>
<loc>/docs/message-queue/537-message-queue-comparison.html</loc>
</url>
<url>
<loc>/docs/message-queue/538-how-to-handle-message-queue-backlog.html</loc>
</url>
<url>
<loc>/docs/message-queue/539-how-message-middleware-achieves-high-availability.html</loc>
</url>
<url>
<loc>/docs/message-queue/540-understanding-apache-pulsar.html</loc>
</url>
<url>
<loc>/docs/message-queue/541-kafka-architecture.html</loc>
</url>
<url>
<loc>/docs/message-queue/542-kafka-topic-partition-design.html</loc>
</url>
<url>
<loc>/docs/message-queue/543-why-kafka-is-fast.html</loc>
</url>
<url>
<loc>/docs/message-queue/544-kafka-message-sending-process.html</loc>
</url>
<url>
<loc>/docs/message-queue/545-kafka-message-reliability.html</loc>
</url>
<url>
<loc>/docs/message-queue/546-kafka-cannot-guarantee-zero-message-loss.html</loc>
</url>
<url>
<loc>/docs/message-queue/547-kafka-exactly-once-semantics.html</loc>
</url>
<url>
<loc>/docs/message-queue/548-kafka-ordered-message-consumption.html</loc>
</url>
<url>
<loc>/docs/message-queue/549-rocketmq-architecture.html</loc>
</url>
<url>
<loc>/docs/message-queue/550-rocketmq-message-reliability.html</loc>
</url>
<url>
<loc>/docs/message-queue/551-rocketmq-delayed-message.html</loc>
</url>
<url>
<loc>/docs/message-queue/552-rabbitmq-architecture.html</loc>
</url>
<url>
<loc>/docs/message-queue/553-rabbitmq-message-reliability.html</loc>
</url>
<url>
<loc>/docs/message-queue/554-how-to-ensure-rabbitmq-high-availability.html</loc>
</url>
<url>
<loc>/docs/message-queue/555-rabbitmq-dead-letter-queue.html</loc>
</url>
<url>
<loc>/docs/message-queue/556-rabbitmq-exchange-types.html</loc>
</url>
<url>
<loc>/docs/rpc/557-what-is-rpc-and-difference-with-http.html</loc>
</url>
<url>
<loc>/docs/rpc/558-why-rpc-faster-than-http.html</loc>
</url>
<url>
<loc>/docs/rpc/559-when-http-required-over-rpc.html</loc>
</url>
<url>
<loc>/docs/rpc/560-dubbo-architecture-overview.html</loc>
</url>
<url>
<loc>/docs/rpc/561-dubbo-service-invocation-process.html</loc>
</url>
<url>
<loc>/docs/rpc/562-dubbo-proxy-mechanism-for-local-like-remote-call.html</loc>
</url>
<url>
<loc>/docs/rpc/563-dubbo-supported-protocols.html</loc>
</url>
<url>
<loc>/docs/rpc/564-dubbo-serialization-methods.html</loc>
</url>
<url>
<loc>/docs/rpc/565-dubbo-load-balance-strategies.html</loc>
</url>
<url>
<loc>/docs/rpc/566-dubbo-service-governance-features.html</loc>
</url>
<url>
<loc>/docs/rpc/567-dubbo-service-discovery-vs-routing.html</loc>
</url>
<url>
<loc>/docs/rpc/568-dubbo-spi-vs-jdk-spi.html</loc>
</url>
<url>
<loc>/docs/rpc/569-why-dubbo-not-use-jdk-spi.html</loc>
</url>
<url>
<loc>/docs/rpc/570-dubbo-graceful-shutdown.html</loc>
</url>
<url>
<loc>/docs/rpc/571-dubbo-generic-invocation.html</loc>
</url>
<url>
<loc>/docs/elasticsearch/572-why-use-elasticsearch.html</loc>
</url>
<url>
<loc>/docs/elasticsearch/573-inverted-index-in-elasticsearch.html</loc>
</url>
<url>
<loc>/docs/elasticsearch/574-why-elasticsearch-is-fast.html</loc>
</url>
<url>
<loc>/docs/elasticsearch/575-elasticsearch-deep-pagination-problem.html</loc>
</url>
<url>
<loc>/docs/elasticsearch/576-elasticsearch-mysql-data-consistency.html</loc>
</url>
<url>
<loc>/docs/elasticsearch/577-elasticsearch-search-performance-optimization.html</loc>
</url>
<url>
<loc>/docs/zookeeper/578-zookeeper-intro-and-usage.html</loc>
</url>
<url>
<loc>/docs/zookeeper/579-zookeeper-naming-and-config.html</loc>
</url>
<url>
<loc>/docs/zookeeper/580-zookeeper-data-model-znode.html</loc>
</url>
<url>
<loc>/docs/zookeeper/581-zookeeper-znode-content.html</loc>
</url>
<url>
<loc>/docs/zookeeper/582-zookeeper-watch-mechanism.html</loc>
</url>
<url>
<loc>/docs/zookeeper/583-zookeeper-characteristics.html</loc>
</url>
<url>
<loc>/docs/zookeeper/584-zookeeper-sequential-consistency.html</loc>
</url>
<url>
<loc>/docs/zookeeper/585-zookeeper-roles-and-states.html</loc>
</url>
<url>
<loc>/docs/zookeeper/586-zookeeper-data-consistency.html</loc>
</url>
<url>
<loc>/docs/zookeeper/587-zookeeper-election-mechanism.html</loc>
</url>
<url>
<loc>/docs/zookeeper/588-dubbo-and-zookeeper.html</loc>
</url>
<url>
<loc>/docs/zookeeper/589-zookeeper-zab-protocol.html</loc>
</url>
<url>
<loc>/docs/zookeeper/590-zookeeper-comprehensive-understanding.html</loc>
</url>
<url>
<loc>/docs/netty/591-netty-reactor-pattern.html</loc>
</url>
<url>
<loc>/docs/netty/592-netty-zero-copy.html</loc>
</url>
<url>
<loc>/docs/netty/593-netty-thread-pool-size.html</loc>
</url>
<url>
<loc>/docs/netty/594-what-is-netty.html</loc>
</url>
<url>
<loc>/docs/netty/595-netty-thread-models.html</loc>
</url>
<url>
<loc>/docs/netty/596-netty-core-components.html</loc>
</url>
<url>
<loc>/docs/netty/597-netty-pipeline-principle.html</loc>
</url>
<url>
<loc>/docs/architecture/598-microservice-architecture-design.html</loc>
</url>
<url>
<loc>/docs/architecture/599-service-mesh-introduction.html</loc>
</url>
<url>
<loc>/docs/architecture/600-internet-architecture-evolution.html</loc>
</url>
<url>
<loc>/docs/architecture/601-fastdfs-vs-minio.html</loc>
</url>
<url>
<loc>/docs/architecture/602-cloud-native-overview.html</loc>
</url>
<url>
<loc>/docs/architecture/603-iaas-paas-saas.html</loc>
</url>
<url>
<loc>/docs/architecture/604-high-traffic-solutions.html</loc>
</url>
<url>
<loc>/docs/architecture/605-rate-limiting-algorithms-in-flash-sales.html</loc>
</url>
<url>
<loc>/docs/architecture/606-delayed-task-processing.html</loc>
</url>
<url>
<loc>/docs/architecture/607-implementing-leaderboard-ranking.html</loc>
</url>
<url>
<loc>/docs/architecture/608-challenging-project-experience.html</loc>
</url>
<url>
<loc>/docs/architecture/609-prevent-coupon-replay.html</loc>
</url>
<url>
<loc>/docs/architecture/610-best-design-practices.html</loc>
</url>
<url>
<loc>/docs/architecture/611-douyin-comment-system-design.html</loc>
</url>
<url>
<loc>/docs/architecture/612-cross-datacenter-url-shortener.html</loc>
</url>
<url>
<loc>/docs/architecture/613-troubleshoot-high-cpu.html</loc>
</url>
<url>
<loc>/docs/scenario/614-reduce-system-failures.html</loc>
</url>
<url>
<loc>/docs/scenario/615-reduce-failure-duration.html</loc>
</url>
<url>
<loc>/docs/scenario/616-reduce-failure-scope.html</loc>
</url>
<url>
<loc>/docs/scenario/617-sql-force-index.html</loc>
</url>
<url>
<loc>/docs/scenario/618-sql-straight-join.html</loc>
</url>
<url>
<loc>/docs/scenario/619-sql-analysis-methods.html</loc>
</url>
<url>
<loc>/docs/scenario/620-jvm-local-cache.html</loc>
</url>
<url>
<loc>/docs/scenario/621-sharding-basics.html</loc>
</url>
<url>
<loc>/docs/scenario/622-sharding-ecommerce.html</loc>
</url>
<url>
<loc>/docs/scenario/623-sharding-ridesharing.html</loc>
</url>
<url>
<loc>/docs/scenario/624-kafka-producer-tuning.html</loc>
</url>
<url>
<loc>/docs/scenario/625-mq-fallback.html</loc>
</url>
<url>
<loc>/docs/scenario/626-kafka-consumer-tuning.html</loc>
</url>
<url>
<loc>/docs/scenario/627-high-concurrency-booking.html</loc>
</url>
<url>
<loc>/docs/scenario/628-traffic-surge.html</loc>
</url>
<url>
<loc>/docs/scenario/629-high-concurrency-likes.html</loc>
</url>
<url>
<loc>/docs/scenario/630-seckill.html</loc>
</url>
<url>
<loc>/docs/scenario/631-performance-order.html</loc>
</url>
<url>
<loc>/docs/scenario/632-performance-coupon.html</loc>
</url>
<url>
<loc>/docs/scenario/633-performance-dashboard.html</loc>
</url>
<url>
<loc>/docs/scenario/634-redis-failure.html</loc>
</url>
<url>
<loc>/docs/scenario/635-cache-selection.html</loc>
</url>
<url>
<loc>/docs/scenario/636-refactor-template-method.html</loc>
</url>
<url>
<loc>/docs/scenario/637-refactor-bridge.html</loc>
</url>
<url>
<loc>/docs/scenario/638-refactor-chain.html</loc>
</url>
<url>
<loc>/docs/scenario/639-data-consistency.html</loc>
</url>
<url>
<loc>/docs/scenario/640-order-consistency.html</loc>
</url>
<url>
<loc>/docs/scenario/641-mysql-read-write-split.html</loc>
</url>
<url>
<loc>/docs/scenario/642-scheduled-task-ha.html</loc>
</url>
<url>
<loc>/docs/scenario/643-monolith-vs-microservice.html</loc>
</url>
<url>
<loc>/about.html</loc>
</url>
<url>
<loc>/docs/jvm/</loc>
</url>
<url>
<loc>/docs/mysql/</loc>
</url>
<url>
<loc>/docs/netty/</loc>
</url>
<url>
<loc>/docs/architecture/</loc>
</url>
<url>
<loc>/docs/message-queue/</loc>
</url>
<url>
<loc>/docs/java-collections/</loc>
</url>
<url>
<loc>/docs/design-patterns/</loc>
</url>
<url>
<loc>/docs/concurrent/</loc>
</url>
<url>
<loc>/docs/redis/</loc>
</url>
<url>
<loc>/docs/scenario/</loc>
</url>
<url>
<loc>/docs/elasticsearch/</loc>
</url>
<url>
<loc>/docs/sharding/</loc>
</url>
<url>
<loc>/docs/distributed-theory/</loc>
</url>
<url>
<loc>/docs/distributed-lock/</loc>
</url>
<url>
<loc>/docs/distributed-id/</loc>
</url>
<url>
<loc>/docs/spring/</loc>
</url>
<url>
<loc>/docs/microservices/</loc>
</url>
<url>
<loc>/docs/rpc/</loc>
</url>
<url>
<loc>/docs/zookeeper/</loc>
</url>
<url>
<loc>/docs/distributed-transaction/</loc>
</url>
<url>
<loc>/docs/java-basics/</loc>
</url>
<url>
<loc>/</loc>
</url>
</urlset>
