{
  "schemaVersion": 1,
  "file": "backend-engineering-pack.zip",
  "bytes": 209007,
  "sha256": "847b0cfb61bafdd49a1ded78bd6abfb5e475c2d41f52111a34e01711cf7bc95f",
  "site": "https://qiuzhiwang.vip",
  "tutorialCount": 17,
  "javaSourceCount": 12,
  "checks": {
    "testzip": "passed",
    "extractedBytes": "passed",
    "repeatBuildSameBytes": "passed",
    "linkAndCodeSelfTests": "passed"
  },
  "files": [
    {
      "path": "CHECKSUMS.json",
      "bytes": 6190,
      "sha256": "cc028ca8b11405d0fc915f9803097b3085dad0088225d83f2a41d6fdaa340efd"
    },
    {
      "path": "LICENSE",
      "bytes": 1112,
      "sha256": "a4cd42d0c11522c7debc3586e2301aad504df529921b89b79fc1331af0fe2b5f"
    },
    {
      "path": "README.md",
      "bytes": 3782,
      "sha256": "489e9edafc673bbde6f9309c211264da0534ec4700f61521e269a3649619a6a5"
    },
    {
      "path": "SOURCES.json",
      "bytes": 11382,
      "sha256": "e399399042b154adc1e6fec12cff5121f8f6869643dba5e892205f6d9e31c7f1"
    },
    {
      "path": "THIRD_PARTY_NOTICES.md",
      "bytes": 2839,
      "sha256": "4f35fdca813e1d6e6fffaf44c07b85e8c48770da17e6a201d83037664e98c16b"
    },
    {
      "path": "examples/java-advanced/aqs-reentrantlock/LockDemo.java",
      "bytes": 3152,
      "sha256": "843cbf7e8990545509549a89f14adc2e65479e6d9597d04b8025ff35c5d38cbe"
    },
    {
      "path": "examples/java-advanced/completablefuture/CompletableFutureDemo.java",
      "bytes": 4828,
      "sha256": "f5c44bc4fdd409c0e765082a580b015e42db4a3fd9c9618677e56544d74cf311"
    },
    {
      "path": "examples/java-advanced/io-streams/IoStreamsDemo.java",
      "bytes": 3638,
      "sha256": "2105818580bae36346cdd97e1bab01909fcc69207e7301221d3bab8fd0a26dd2"
    },
    {
      "path": "examples/java-advanced/jdk17-to21/NonExhaustive.java",
      "bytes": 268,
      "sha256": "d83a00469b1cb56d2ce401280f0cd243fc6fdbabe4afca6887bed168179badc8"
    },
    {
      "path": "examples/java-advanced/jdk17-to21/PreviewMain.java",
      "bytes": 122,
      "sha256": "822042f1ddb7408993447a3820da85d03555f1ad7f2bb6c4ef00a12bab7fa4da"
    },
    {
      "path": "examples/java-advanced/jdk17-to21/UpgradeDemo.java",
      "bytes": 1428,
      "sha256": "95e6e8d24c0c47e4ace1eaaf9dbcf61ce215e9c650ed93695b9038e1858bdaa1"
    },
    {
      "path": "examples/java-advanced/nio-buffer-channel/BufferChannelDemo.java",
      "bytes": 3709,
      "sha256": "ddbc691f36ccd3124afbbc2e995f4db13839d56321e1080369ffc3c2f202496f"
    },
    {
      "path": "examples/java-advanced/nio-file-channel/FileChannelDemo.java",
      "bytes": 3365,
      "sha256": "9898b2e05bcb5468b2244d8526c94160401db9fa11f46684ca6fe19059092a99"
    },
    {
      "path": "examples/java-advanced/nio-selector/SelectorDemo.java",
      "bytes": 4617,
      "sha256": "45e2880d611dd4d6af1a5187c6bee7065cc0b0d244ec54a85bd0836fb53f18f2"
    },
    {
      "path": "examples/java-advanced/threadlocal/ThreadLocalDemo.java",
      "bytes": 2334,
      "sha256": "51bbce6fb176fb9e7e11a448c1d494bd8291b2034196cf7983c6e2e8d8f2f87e"
    },
    {
      "path": "examples/java-advanced/virtual-threads-jdk21/PinningDemo.java",
      "bytes": 1036,
      "sha256": "8f273b3839c9489e8d1c24c2ecfb675b7aae1650a0b297e1036cd216486a5be7"
    },
    {
      "path": "examples/java-advanced/virtual-threads-jdk21/VirtualThreadsDemo.java",
      "bytes": 2251,
      "sha256": "d691b618982f0aee2824b12911b68bad93659578f5c94b742853a0a94a9a1ab9"
    },
    {
      "path": "src/.vuepress/public/licenses/javaguide-apache-2.0.txt",
      "bytes": 11558,
      "sha256": "1eb85fc97224598dad1852b5d6483bbcf0aa8608790dcc657a5a2a761ae9c8c6"
    },
    {
      "path": "src/.vuepress/public/licenses/site-template-mit.txt",
      "bytes": 1112,
      "sha256": "a4cd42d0c11522c7debc3586e2301aad504df529921b89b79fc1331af0fe2b5f"
    },
    {
      "path": "src/about/README.md",
      "bytes": 3756,
      "sha256": "6a1ea52a18d2dc04ba4c93a8a8c2c84a7faae212821a2bb5e154bdce9dfcf0ef"
    },
    {
      "path": "src/editorial/README.md",
      "bytes": 2493,
      "sha256": "e81ab8d4a40df259dfb9d836f9a02ec45e82d39d9173ae3b1433114b92aa9d20"
    },
    {
      "path": "src/editorial/sources.md",
      "bytes": 4594,
      "sha256": "d24f378b8e0ec0aa5e3f51137e1076fa7a661d3b2ddafa73180350c008eb6c9f"
    },
    {
      "path": "src/tutorials/README.md",
      "bytes": 5068,
      "sha256": "4c44c337de049eb18649b9321004663fa7feb2d3a523dd6b631aef66b3d4dd1e"
    },
    {
      "path": "src/tutorials/aqs-reentrantlock.md",
      "bytes": 7513,
      "sha256": "c88eb20605db26def92e13bff343c2c4d1ac2611dcf2258a43c5351c13db322d"
    },
    {
      "path": "src/tutorials/completablefuture.md",
      "bytes": 8471,
      "sha256": "68852e76f1391734b4b665e8b16a4e91ae8c76e25c1f0ac465afa1eadf1285df"
    },
    {
      "path": "src/tutorials/io-streams.md",
      "bytes": 7713,
      "sha256": "98ca66f20f26e83c425a6228c8550a1272f5273793fda44af20fbae124965dd1"
    },
    {
      "path": "src/tutorials/jdk17-to21.md",
      "bytes": 7264,
      "sha256": "b9bf6a5dd4de48b4bb7175636031b7a57cfef9c3ce4959d070dcf4cfae86873b"
    },
    {
      "path": "src/tutorials/mysql-explain.md",
      "bytes": 7294,
      "sha256": "9930839652cbf278693beef55722f1a2c247141f65e12a441042df63c01e6e84"
    },
    {
      "path": "src/tutorials/mysql-locking.md",
      "bytes": 7481,
      "sha256": "a25edb4d82c446080a866cd27ed8299cb9b10b91b6e7dec76f6d1eda58036292"
    },
    {
      "path": "src/tutorials/mysql-logs.md",
      "bytes": 7369,
      "sha256": "9d04f7dbf520e632659faf8931a8f687863f3ee3fe72fcefceb27eafb6ac5c24"
    },
    {
      "path": "src/tutorials/mysql-mvcc.md",
      "bytes": 7387,
      "sha256": "5a43ae30e6ef31966cd32ac95e127812e8b52be61a0f6697171dcec1bfd74a5f"
    },
    {
      "path": "src/tutorials/nio-buffer-channel.md",
      "bytes": 7176,
      "sha256": "a4d63f0077d1aea8aa7fb8f41d232ba4becc159c0f7ad3681cb6d3880470037c"
    },
    {
      "path": "src/tutorials/nio-file-channel.md",
      "bytes": 6984,
      "sha256": "3d6c85a929da5b89b8aaeab004aa1d2029ce0186917e96faa2f9c220d8fee1ec"
    },
    {
      "path": "src/tutorials/nio-selector.md",
      "bytes": 7445,
      "sha256": "46b0cea9bd5aa7e8be4ab7f690afac78a7f6b4ef46b2125713e9a99cb6e54655"
    },
    {
      "path": "src/tutorials/redis-high-availability.md",
      "bytes": 7494,
      "sha256": "bcd4d3e11b86cd051904762eab6a3df78c9bb17968bd328c38a36e595523e373"
    },
    {
      "path": "src/tutorials/redis-persistence.md",
      "bytes": 8156,
      "sha256": "3a03346042250aed70ec2610396250eb4d3b9e39ab8a59654c1d74a189859491"
    },
    {
      "path": "src/tutorials/redis-replication.md",
      "bytes": 7456,
      "sha256": "8918d1b12b4aab51c05ca677e87ef438bcc15be52dd3aa53b1b6f814f33b18cf"
    },
    {
      "path": "src/tutorials/threadlocal.md",
      "bytes": 6624,
      "sha256": "035aa97e3c3801a78b8d36ba627bc394244d23fb7ebd7a8faa54191c9df89793"
    },
    {
      "path": "src/tutorials/virtual-threads-jdk21.md",
      "bytes": 6658,
      "sha256": "f1aa082dffb22c7929f545a20d35d0d5b60e49af01265553cfd3a7d47cf70a3f"
    }
  ]
}
