-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
54 lines (52 loc) · 35.7 KB
/
Copy pathindex.html
File metadata and controls
54 lines (52 loc) · 35.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>014-blog</title>
<meta name="description" content="014的个人博客1">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/014.github.io/assets/style.CM4r4qAd.css" as="style">
<link rel="preload stylesheet" href="/014.github.io/vp-icons.css" as="style">
<script type="module" src="/014.github.io/assets/app.U_7kwRfD.js"></script>
<link rel="preload" href="/014.github.io/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/014.github.io/assets/chunks/framework.CSGB4SNl.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/theme.DL426nBR.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/katex.CBSAILhF.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/dagre-6UL2VRFP.D5ngKDED.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/cose-bilkent-S5V4N54A.BBr8OAv6.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/c4Diagram-YG6GDRKO.C94aVe5J.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/flowDiagram-NV44I4VS.D5o8Vvrz.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/erDiagram-Q2GNP2WA.BbNKCOu6.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/gitGraphDiagram-NY62KEGX.DAhxHLgI.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/ganttDiagram-JELNMOA3.ByKTA2hK.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/infoDiagram-WHAUD3N6.D0Y6iq2L.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/pieDiagram-ADFJNKIX.BCn2yz5q.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/quadrantDiagram-AYHSOK5B.CCMj2yp3.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/xychartDiagram-PRI3JC2R.DlaZmyfO.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/requirementDiagram-UZGBJVZJ.nbcn_mgQ.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/sequenceDiagram-WL72ISMW.DRERqcHo.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/classDiagram-2ON5EDUG.B2kPATCR.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/classDiagram-v2-WZHVMYZB.B2kPATCR.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/stateDiagram-FKZM4ZOC.bBe0_8tN.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/stateDiagram-v2-4FDKWEC3.C36O6wuD.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/journeyDiagram-XKPGCS4Q.C2Gi909l.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/timeline-definition-IT6M3QCI.3wRRe8JE.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/mindmap-definition-VGOIOE7T.DCXPPQFD.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/kanban-definition-3W4ZIXB7.CJPd0vCM.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/sankeyDiagram-TZEHDZUN.Ccoua6QA.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/diagram-S2PKOQOG.BLXk4gHB.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/diagram-QEK2KX5R.CKQYuWdX.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/blockDiagram-VD42YOAC.DoK6WmjC.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/architectureDiagram-VXUJARFQ.DMT6b8wQ.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/diagram-PSM6KHXK.DtNzvwHV.js">
<link rel="modulepreload" href="/014.github.io/assets/chunks/virtual_mermaid-config.DDnGl6nM.js">
<link rel="modulepreload" href="/014.github.io/assets/index.md.Bq5hYpoi.lean.js">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-d8b57b2d><!--[--><!--]--><!--[--><span tabindex="-1" data-v-fcbfc0e0></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-fcbfc0e0>Skip to content</a><!--]--><!----><header class="VPNav" data-v-d8b57b2d data-v-7ad780c2><div class="VPNavBar" data-v-7ad780c2 data-v-9fd4d1dd><div class="wrapper" data-v-9fd4d1dd><div class="container" data-v-9fd4d1dd><div class="title" data-v-9fd4d1dd><div class="VPNavBarTitle" data-v-9fd4d1dd data-v-9f43907a><a class="title" href="/014.github.io/" data-v-9f43907a><!--[--><!--]--><!----><span data-v-9f43907a>014-blog</span><!--[--><!--]--></a></div></div><div class="content" data-v-9fd4d1dd><div class="content-body" data-v-9fd4d1dd><!--[--><!--]--><div class="VPNavBarSearch search" data-v-9fd4d1dd><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-9fd4d1dd data-v-afb2845e><span id="main-nav-aria-label" class="visually-hidden" data-v-afb2845e> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/014.github.io/" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>首页</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/014.github.io/java/index.html" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Java 开发</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/014.github.io/frontend/index.html" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>前端开发</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/014.github.io/about.html" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>关于我</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-9fd4d1dd data-v-3f90c1a5><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-3f90c1a5 data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-9fd4d1dd data-v-ef6192dc data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/vuejs/vitepress" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-9fd4d1dd data-v-f953d92f data-v-bfe7971f><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-bfe7971f><span class="vpi-more-horizontal icon" data-v-bfe7971f></span></button><div class="menu" data-v-bfe7971f><div class="VPMenu" data-v-bfe7971f data-v-20ed86d6><!----><!--[--><!--[--><!----><div class="group" data-v-f953d92f><div class="item appearance" data-v-f953d92f><p class="label" data-v-f953d92f>Appearance</p><div class="appearance-action" data-v-f953d92f><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-f953d92f data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div></div></div><div class="group" data-v-f953d92f><div class="item social-links" data-v-f953d92f><div class="VPSocialLinks social-links-list" data-v-f953d92f data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/vuejs/vitepress" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-9fd4d1dd data-v-6bee1efd><span class="container" data-v-6bee1efd><span class="top" data-v-6bee1efd></span><span class="middle" data-v-6bee1efd></span><span class="bottom" data-v-6bee1efd></span></span></button></div></div></div></div><div class="divider" data-v-9fd4d1dd><div class="divider-line" data-v-9fd4d1dd></div></div></div><!----></header><!----><!----><div class="VPContent is-home" id="VPContent" data-v-d8b57b2d data-v-9a6c75ad><div class="VPHome" data-v-9a6c75ad data-v-e07eaea7><!--[--><!--]--><div class="VPHero has-image VPHomeHero" data-v-e07eaea7 data-v-dd8814ff><div class="container" data-v-dd8814ff><div class="main" data-v-dd8814ff><!--[--><!--]--><!--[--><h1 class="heading" data-v-dd8814ff><span class="name clip" data-v-dd8814ff>技术博客</span><span class="text" data-v-dd8814ff>014's Blog</span></h1><p class="tagline" data-v-dd8814ff>专注后端技术,分享实战经验</p><!--]--><!--[--><!--]--><div class="actions" data-v-dd8814ff><!--[--><div class="action" data-v-dd8814ff><a class="VPButton medium brand" href="/014.github.io/java/index.html" data-v-dd8814ff data-v-93dc4167>🚀 开始探索</a></div><div class="action" data-v-dd8814ff><a class="VPButton medium alt" href="/014.github.io/about.html" data-v-dd8814ff data-v-93dc4167>📖 了解更多</a></div><!--]--></div><!--[--><!--]--></div><div class="image" data-v-dd8814ff><div class="image-container" data-v-dd8814ff><div class="image-bg" data-v-dd8814ff></div><!--[--><!--[--><img class="VPImage image-src" src="/014.github.io/logo.svg" alt="014-blog Logo" width="120" height="120" data-v-ab19afbb><!--]--><!--]--></div></div></div></div><!--[--><!--]--><!--[--><!--]--><div class="VPFeatures VPHomeFeatures" data-v-e07eaea7 data-v-b1eea84a><div class="container" data-v-b1eea84a><div class="items" data-v-b1eea84a><!--[--><div class="grid-3 item" data-v-b1eea84a><a class="VPLink link no-icon VPFeature" href="/014.github.io/java/index.html" data-v-b1eea84a data-v-bd37d1a2><!--[--><article class="box" data-v-bd37d1a2><!--[--><img class="VPImage" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/java/java-original.svg" height="48" width="48" alt data-v-ab19afbb><!--]--><h2 class="title" data-v-bd37d1a2>Java 后端</h2><p class="details" data-v-bd37d1a2>多线程、Redis、消息队列、MySQL、Spring 生态等核心知识</p><!----></article><!--]--></a></div><div class="grid-3 item" data-v-b1eea84a><a class="VPLink link no-icon VPFeature" href="/014.github.io/frontend/index.html" data-v-b1eea84a data-v-bd37d1a2><!--[--><article class="box" data-v-bd37d1a2><!--[--><img class="VPImage" src="https://cdn.jsdelivr.net/npm/@plexidev/quick.db@0.0.4/assets/images/vue.svg" height="48" width="48" alt data-v-ab19afbb><!--]--><h2 class="title" data-v-bd37d1a2>前端开发</h2><p class="details" data-v-bd37d1a2>Vue3、React、TypeScript、现代前端工程化实践</p><!----></article><!--]--></a></div><div class="grid-3 item" data-v-b1eea84a><a class="VPLink link no-icon VPFeature" href="/014.github.io/java/docker/docker-operation.html" data-v-b1eea84a data-v-bd37d1a2><!--[--><article class="box" data-v-bd37d1a2><!--[--><img class="VPImage" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/docker/docker-original.svg" height="48" width="48" alt data-v-ab19afbb><!--]--><h2 class="title" data-v-bd37d1a2>工程化</h2><p class="details" data-v-bd37d1a2>Docker 容器化、K8s 编排、CI/CD 自动化部署</p><!----></article><!--]--></a></div><!--]--></div></div></div><!--[--><!--]--><div class="vp-doc container" style="" data-v-e07eaea7 data-v-c141a4bd><!--[--><div style="position:relative;" data-v-e07eaea7><div></div></div><!--]--></div></div></div><!----><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"about.md\":\"Cvbc4elW\",\"ai-code_ai-code-frontend_readme.md\":\"JMgmIiU8\",\"ai-code_ai-code-mobile_readme.md\":\"BUzQEPO_\",\"ai-code_help.md\":\"BQ4qy_0X\",\"ai-code_readme.md\":\"C6-D6oZC\",\"drone-pro_drone-admin_readme.md\":\"CmxCqGwm\",\"drone-pro_drone-server_readme.md\":\"1Pj9_NOU\",\"drone-pro_drone-user-uni_pages-registered_api_drone_7788_绿色生活智能系统--需求分析:.md\":\"CLavTNEJ\",\"drone-pro_drone-user-uni_readme.md\":\"DbTappQk\",\"drone-pro_drone-user-uni_uni_modules_uni-badge_changelog.md\":\"l_c1-F0m\",\"drone-pro_drone-user-uni_uni_modules_uni-badge_readme.md\":\"D5Z9uNuj\",\"drone-pro_drone-user-uni_uni_modules_uni-breadcrumb_changelog.md\":\"Dltb3iF0\",\"drone-pro_drone-user-uni_uni_modules_uni-breadcrumb_readme.md\":\"BzNfn9dy\",\"drone-pro_drone-user-uni_uni_modules_uni-calendar_changelog.md\":\"DYXC_kss\",\"drone-pro_drone-user-uni_uni_modules_uni-calendar_readme.md\":\"BES4TSZy\",\"drone-pro_drone-user-uni_uni_modules_uni-card_changelog.md\":\"DO_DxYGr\",\"drone-pro_drone-user-uni_uni_modules_uni-card_readme.md\":\"1m7h3Wgh\",\"drone-pro_drone-user-uni_uni_modules_uni-collapse_changelog.md\":\"63Akps7M\",\"drone-pro_drone-user-uni_uni_modules_uni-collapse_readme.md\":\"CiwsRPHa\",\"drone-pro_drone-user-uni_uni_modules_uni-combox_changelog.md\":\"CYaozqw2\",\"drone-pro_drone-user-uni_uni_modules_uni-combox_readme.md\":\"CtgdncEa\",\"drone-pro_drone-user-uni_uni_modules_uni-countdown_changelog.md\":\"ByH3e-7S\",\"drone-pro_drone-user-uni_uni_modules_uni-countdown_readme.md\":\"BX_9dbDp\",\"drone-pro_drone-user-uni_uni_modules_uni-data-checkbox_changelog.md\":\"DuFJIGux\",\"drone-pro_drone-user-uni_uni_modules_uni-data-checkbox_readme.md\":\"V5FZoSuG\",\"drone-pro_drone-user-uni_uni_modules_uni-data-picker_changelog.md\":\"DQTE7IWX\",\"drone-pro_drone-user-uni_uni_modules_uni-data-picker_readme.md\":\"Cbb4wGKm\",\"drone-pro_drone-user-uni_uni_modules_uni-data-select_changelog.md\":\"kqP-bJ6x\",\"drone-pro_drone-user-uni_uni_modules_uni-data-select_readme.md\":\"BPn-f-qy\",\"drone-pro_drone-user-uni_uni_modules_uni-dateformat_changelog.md\":\"Dd-cvHH5\",\"drone-pro_drone-user-uni_uni_modules_uni-dateformat_readme.md\":\"D0Nhuf7l\",\"drone-pro_drone-user-uni_uni_modules_uni-datetime-picker_changelog.md\":\"BQU3JAV7\",\"drone-pro_drone-user-uni_uni_modules_uni-datetime-picker_readme.md\":\"BX-RzIDW\",\"drone-pro_drone-user-uni_uni_modules_uni-drawer_changelog.md\":\"BGjfcXHl\",\"drone-pro_drone-user-uni_uni_modules_uni-drawer_readme.md\":\"EHtITxtJ\",\"drone-pro_drone-user-uni_uni_modules_uni-easyinput_changelog.md\":\"COS1CJr3\",\"drone-pro_drone-user-uni_uni_modules_uni-easyinput_readme.md\":\"CZ7QBDPr\",\"drone-pro_drone-user-uni_uni_modules_uni-fab_changelog.md\":\"BJ1AVH4r\",\"drone-pro_drone-user-uni_uni_modules_uni-fab_readme.md\":\"2W4PPrDV\",\"drone-pro_drone-user-uni_uni_modules_uni-fav_changelog.md\":\"C545vNtp\",\"drone-pro_drone-user-uni_uni_modules_uni-fav_readme.md\":\"BZIhG7TS\",\"drone-pro_drone-user-uni_uni_modules_uni-file-picker_changelog.md\":\"ySwomhMD\",\"drone-pro_drone-user-uni_uni_modules_uni-file-picker_readme.md\":\"DEpyk2a1\",\"drone-pro_drone-user-uni_uni_modules_uni-forms_changelog.md\":\"szrrl5FX\",\"drone-pro_drone-user-uni_uni_modules_uni-forms_readme.md\":\"9uN2f_TF\",\"drone-pro_drone-user-uni_uni_modules_uni-goods-nav_changelog.md\":\"DV0Y6XRZ\",\"drone-pro_drone-user-uni_uni_modules_uni-goods-nav_readme.md\":\"C-pWR7aj\",\"drone-pro_drone-user-uni_uni_modules_uni-grid_changelog.md\":\"CJnwtNUy\",\"drone-pro_drone-user-uni_uni_modules_uni-grid_readme.md\":\"ova7CpBB\",\"drone-pro_drone-user-uni_uni_modules_uni-group_changelog.md\":\"yGi_xgIK\",\"drone-pro_drone-user-uni_uni_modules_uni-group_readme.md\":\"BE68pvs2\",\"drone-pro_drone-user-uni_uni_modules_uni-icons_changelog.md\":\"Kdj1zk1K\",\"drone-pro_drone-user-uni_uni_modules_uni-icons_readme.md\":\"DyAtpb3L\",\"drone-pro_drone-user-uni_uni_modules_uni-indexed-list_changelog.md\":\"DqlQj_0I\",\"drone-pro_drone-user-uni_uni_modules_uni-indexed-list_readme.md\":\"X5Hr0WMy\",\"drone-pro_drone-user-uni_uni_modules_uni-link_changelog.md\":\"jAEuEh7b\",\"drone-pro_drone-user-uni_uni_modules_uni-link_readme.md\":\"BCeXUKyw\",\"drone-pro_drone-user-uni_uni_modules_uni-list_changelog.md\":\"XSdXC6y1\",\"drone-pro_drone-user-uni_uni_modules_uni-list_readme.md\":\"Cdazen6Z\",\"drone-pro_drone-user-uni_uni_modules_uni-load-more_changelog.md\":\"Wcmg2gYw\",\"drone-pro_drone-user-uni_uni_modules_uni-load-more_readme.md\":\"BlCEUr5y\",\"drone-pro_drone-user-uni_uni_modules_uni-nav-bar_changelog.md\":\"DCqlZ9O6\",\"drone-pro_drone-user-uni_uni_modules_uni-nav-bar_readme.md\":\"BGBm7ICH\",\"drone-pro_drone-user-uni_uni_modules_uni-notice-bar_changelog.md\":\"BzD7_EXz\",\"drone-pro_drone-user-uni_uni_modules_uni-notice-bar_readme.md\":\"CEtjKIbf\",\"drone-pro_drone-user-uni_uni_modules_uni-number-box_changelog.md\":\"BgPtCjT0\",\"drone-pro_drone-user-uni_uni_modules_uni-number-box_readme.md\":\"mOrOpb3q\",\"drone-pro_drone-user-uni_uni_modules_uni-pagination_changelog.md\":\"BkESZ7c6\",\"drone-pro_drone-user-uni_uni_modules_uni-pagination_readme.md\":\"DCdBifma\",\"drone-pro_drone-user-uni_uni_modules_uni-popup_changelog.md\":\"C8zDgHJ8\",\"drone-pro_drone-user-uni_uni_modules_uni-popup_readme.md\":\"BcjszY9l\",\"drone-pro_drone-user-uni_uni_modules_uni-rate_changelog.md\":\"ZIvKlfuT\",\"drone-pro_drone-user-uni_uni_modules_uni-rate_readme.md\":\"BBFgmAAD\",\"drone-pro_drone-user-uni_uni_modules_uni-row_changelog.md\":\"Dc-wMl8c\",\"drone-pro_drone-user-uni_uni_modules_uni-row_readme.md\":\"BJrJD5iG\",\"drone-pro_drone-user-uni_uni_modules_uni-scss_changelog.md\":\"z4qKu41i\",\"drone-pro_drone-user-uni_uni_modules_uni-scss_readme.md\":\"DWZXezcQ\",\"drone-pro_drone-user-uni_uni_modules_uni-search-bar_changelog.md\":\"y0TF062J\",\"drone-pro_drone-user-uni_uni_modules_uni-search-bar_readme.md\":\"CGNf-RKs\",\"drone-pro_drone-user-uni_uni_modules_uni-segmented-control_changelog.md\":\"D16nY6eQ\",\"drone-pro_drone-user-uni_uni_modules_uni-segmented-control_readme.md\":\"C9gqPowA\",\"drone-pro_drone-user-uni_uni_modules_uni-steps_changelog.md\":\"Din24129\",\"drone-pro_drone-user-uni_uni_modules_uni-steps_readme.md\":\"CBtWvai7\",\"drone-pro_drone-user-uni_uni_modules_uni-swipe-action_changelog.md\":\"BU-0Dxc9\",\"drone-pro_drone-user-uni_uni_modules_uni-swipe-action_readme.md\":\"D8ESvklM\",\"drone-pro_drone-user-uni_uni_modules_uni-swiper-dot_changelog.md\":\"mU2dHTej\",\"drone-pro_drone-user-uni_uni_modules_uni-swiper-dot_readme.md\":\"DC5PyawT\",\"drone-pro_drone-user-uni_uni_modules_uni-table_changelog.md\":\"D5goFEaT\",\"drone-pro_drone-user-uni_uni_modules_uni-table_readme.md\":\"BhdQvUg3\",\"drone-pro_drone-user-uni_uni_modules_uni-tag_changelog.md\":\"DK4o5mVy\",\"drone-pro_drone-user-uni_uni_modules_uni-tag_readme.md\":\"CnFTlTJG\",\"drone-pro_drone-user-uni_uni_modules_uni-title_changelog.md\":\"-Pxgjbwa\",\"drone-pro_drone-user-uni_uni_modules_uni-title_readme.md\":\"DrCZJoz6\",\"drone-pro_drone-user-uni_uni_modules_uni-tooltip_changelog.md\":\"W_zKjHl9\",\"drone-pro_drone-user-uni_uni_modules_uni-tooltip_readme.md\":\"BkBQubnn\",\"drone-pro_drone-user-uni_uni_modules_uni-transition_changelog.md\":\"WG-rSxj2\",\"drone-pro_drone-user-uni_uni_modules_uni-transition_readme.md\":\"CCtuPEiE\",\"drone-pro_drone-user-uni_uni_modules_uview-plus_changelog.md\":\"Bufl3dKD\",\"drone-pro_drone-user-uni_uni_modules_uview-plus_readme.md\":\"CyLoVPxr\",\"drone-server_readme.md\":\"DuQC-81h\",\"frontend_index.md\":\"nRov7ljE\",\"frontend_javascript_eslint.md\":\"Ce46UF-c\",\"frontend_javascript_event-loop.md\":\"h3E9ijg3\",\"frontend_javascript_index.md\":\"Dwg_OR77\",\"frontend_javascript_this.md\":\"CDBvJbIu\",\"frontend_react_framework-compare.md\":\"Dj_LfkPh\",\"frontend_uniapp_uniapp.md\":\"o2hvRNq3\",\"frontend_vite_vite.md\":\"CzX7O0Ej\",\"frontend_vue_file-upload.md\":\"CtxW72mv\",\"frontend_vue_vue-lifecycle.md\":\"C4VRlMB4\",\"frontend_vue_vue-proxy.md\":\"S5JoRr7T\",\"frontend_vue_vue-ts.md\":\"yH-UfHiz\",\"frontend_vue_vue3-performance.md\":\"CELtp8Hu\",\"frontend_vue_why-data-is-function.md\":\"C6okFwCr\",\"frontend_wechat_wechat-pay.md\":\"CNsMzs3r\",\"index.md\":\"Bq5hYpoi\",\"java_algorithms_hash-table.md\":\"BYfrIH1H\",\"java_algorithms_sliding-window.md\":\"CoRrjlSD\",\"java_algorithms_two-pointers.md\":\"CIcXWj83\",\"java_business_order-timeout-cancel.md\":\"cbnQromE\",\"java_concurrency_java-core-knowledge.md\":\"BBz5qvX2\",\"java_concurrent_atomic.md\":\"DU9oZ5zJ\",\"java_concurrent_chronicle-queue.md\":\"CEsAA8on\",\"java_concurrent_concurrent-01.md\":\"48WiSmOc\",\"java_concurrent_concurrent-02.md\":\"CN4Rnxgr\",\"java_concurrent_concurrent-03.md\":\"7mvoqE9q\",\"java_concurrent_concurrent-04.md\":\"DwwQES4L\",\"java_concurrent_concurrent-05.md\":\"DGFVqjkP\",\"java_concurrent_concurrent-06.md\":\"CVm7qVbP\",\"java_concurrent_disruptor.md\":\"BgcjZX9p\",\"java_concurrent_index.md\":\"ALZjiYK8\",\"java_concurrent_juc-tools.md\":\"D8uWPGtl\",\"java_concurrent_thread-pool-detailed.md\":\"CY8iNYrm\",\"java_concurrent_thread-pool-params-guide.md\":\"8-K8K-7T\",\"java_concurrent_threadlocal.md\":\"B7WiuPv2\",\"java_design-patterns_all-patterns.md\":\"DOpYUeZs\",\"java_devops_jekins.md\":\"TFElxT5Q\",\"java_distributed_redisson.md\":\"DeD03Azz\",\"java_docker_docker-compose.md\":\"Dt-l1vga\",\"java_docker_docker-file.md\":\"3dydIVF7\",\"java_docker_docker-operation.md\":\"DhReJPYs\",\"java_docker_dockerfile-beginner.md\":\"-NMEQQTC\",\"java_docker_dockerfile.md\":\"CFLIyVfx\",\"java_docker_index.md\":\"25mmgVsZ\",\"java_eight-legged essay_java-hot200-day01.md\":\"Bpp4_0In\",\"java_eight-legged essay_java-hot200-day02.md\":\"CU7QudqM\",\"java_eight-legged essay_java-hot200-day03.md\":\"BnKcMr7C\",\"java_eight-legged essay_java-hot200-day04.md\":\"H22YGpZx\",\"java_eight-legged essay_java-hot200-day05.md\":\"CtjzAWHX\",\"java_eight-legged essay_java-hot200-day06.md\":\"Cu1ObXSD\",\"java_eight-legged essay_java-hot200-day07.md\":\"sjKG-_ad\",\"java_eight-legged essay_java-hot200-day08.md\":\"C1gk2Z3h\",\"java_eight-legged essay_java-hot200-day09.md\":\"DXsM7AgB\",\"java_eight-legged essay_java-hot200-day10.md\":\"D11W0KKH\",\"java_eight-legged essay_java-hot200-day11.md\":\"DdH5fq5y\",\"java_eight-legged essay_java-hot200-day12.md\":\"WzNa4YzD\",\"java_eight-legged essay_java-hot200-day13.md\":\"CGAfkrHF\",\"java_eight-legged essay_java-hot200-day14.md\":\"BBDWsX1A\",\"java_eight-legged essay_java-hot200-day15.md\":\"DcByjvnd\",\"java_eight-legged essay_java-jucday01.md\":\"2VWd5jad\",\"java_eight-legged essay_java-jvmday01.md\":\"B5F6nDFX\",\"java_eight-legged essay_八股文-简历补充.md\":\"Dvebmzpq\",\"java_eight-legged essay_八股文day01.md\":\"BG_Gmjv3\",\"java_eight-legged essay_八股文day02.md\":\"B3yB7hK0\",\"java_eight-legged essay_八股文day03.md\":\"DJ1cnhAc\",\"java_eight-legged essay_八股文day04.md\":\"DdwSgWNo\",\"java_elasticsearch_es-bucket.md\":\"rKv6S3rZ\",\"java_elasticsearch_es-dsl.md\":\"CU3fmhn4\",\"java_elasticsearch_es-term.md\":\"FK-xlcpf\",\"java_elasticsearch_es.md\":\"TiWKYgds\",\"java_elasticsearch_index.md\":\"De5uC31P\",\"java_index.md\":\"BMofB0jk\",\"java_jdk_completablefuture-templates.md\":\"CYwmACcY\",\"java_jdk_index.md\":\"DWbmkFwd\",\"java_jdk_java-26.md\":\"DNnx3Upj\",\"java_jdk_optional-tricks.md\":\"DvFXmvL5\",\"java_jdk_service-loader.md\":\"0GHv6q1m\",\"java_jdk_string-intern.md\":\"1KFB0ynI\",\"java_jdk_try-with-resources.md\":\"y0r9V7pN\",\"java_microservice_dubbo.md\":\"SkIVy6yk\",\"java_microservice_index.md\":\"BGcBR6yp\",\"java_mq_index.md\":\"acKYMDcu\",\"java_mq_kafka-springboot.md\":\"YYohQ2xC\",\"java_mq_mq-backlog-troubleshooting.md\":\"D0O-NgTW\",\"java_mq_rabbitmq-advanced.md\":\"DTIFvjr0\",\"java_mq_rabbitmq-idempotency.md\":\"CGfpz2nr\",\"java_mq_rabbitmq-producer-reliable.md\":\"DGzC2oIA\",\"java_mq_rabbitmq-retry-design.md\":\"BlS_mWe1\",\"java_mq_rabbitmq.md\":\"D5Y3WiD1\",\"java_mysql_about-join.md\":\"Czc7B0ho\",\"java_mysql_composite-index-design.md\":\"WDLF5g-8\",\"java_mysql_deep-pagination.md\":\"BR1ORC5p\",\"java_mysql_index-invalid.md\":\"DzrNWCqP\",\"java_mysql_index.md\":\"C0jwT2fz\",\"java_mysql_lock.md\":\"azM22y8V\",\"java_mysql_mysql-lock.md\":\"B-Iw5pkF\",\"java_mysql_order-status-machine-sql.md\":\"DeqWHNiI\",\"java_mysql_practical-business-sql.md\":\"CO7OoEiw\",\"java_mysql_practical-sql-snippets.md\":\"B5P1SaNY\",\"java_mysql_sharding-sphere.md\":\"COM8N6Xy\",\"java_mysql_spring-neo4j.md\":\"C2GgTOAB\",\"java_mysql_subquery.md\":\"ABMm751r\",\"java_mysql_transaction-isolation.md\":\"-FZ7pDv_\",\"java_network_tcp-handshake.md\":\"CFqoZM43\",\"java_nginx_index.md\":\"BcPplqgn\",\"java_nginx_nginx-websocket-troubleshooting.md\":\"Da_plP30\",\"java_nginx_nginx.md\":\"CgTkzECb\",\"java_redis_bloom-filter.md\":\"oTvzO7xn\",\"java_redis_cache-aside.md\":\"BTr-0uFP\",\"java_redis_cache-consistency.md\":\"KDDD0-aM\",\"java_redis_cache-delete-failure-retry.md\":\"Cu5MUU-k\",\"java_redis_cache-problems.md\":\"C-_EOlLh\",\"java_redis_delayed-double-delete.md\":\"Q2yTKVvx\",\"java_redis_distributed-lock.md\":\"B6bWCC5E\",\"java_redis_index.md\":\"COX-zd7P\",\"java_redis_redis-geo.md\":\"CjlBt9Ty\",\"java_redis_redis-lua-scripts.md\":\"Cj7OEbQd\",\"java_redis_redis-queue.md\":\"DiXQ21qO\",\"java_redis_redis-stream.md\":\"BdO3Zkz5\",\"java_spring_auto-configuration.md\":\"uy_wJasr\",\"java_spring_caffeine.md\":\"BrFdQHLf\",\"java_spring_spring-data-jpa.md\":\"0x_CnjjJ\",\"java_spring_transaction.md\":\"EMq8rnRe\",\"java_spring_transactional.md\":\"Cc5iTtHT\",\"java_tools_arthas.md\":\"COHNVIp6\",\"java_tools_logging-best-practices.md\":\"Dt9xlbgE\",\"java_wechat_wechat-pay.md\":\"B2rPMTE0\",\"java_wechat_wechat-subscribe.md\":\"sjfMqLl7\",\"mju-ai-admin_readme.md\":\"BM-8eq8w\",\"mju-ai-server_readme.md\":\"BlnqG312\",\"readme.md\":\"DNHHxNNt\",\"tianbao-community-server_readme.md\":\"BlwOdKwa\",\"unity_index.md\":\"CCSOEIU7\",\"vue_vue-day01.md\":\"BASkkDXR\",\"vue_vue-day02.md\":\"COtVvuEC\",\"vue_vue-day03.md\":\"Czr8VWtC\",\"面试题格式化后的.md\":\"CRjZYFLM\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"014-blog\",\"description\":\"014的个人博客\",\"base\":\"/014.github.io/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"首页\",\"link\":\"/\"},{\"text\":\"Java 开发\",\"link\":\"/java/index\"},{\"text\":\"前端开发\",\"link\":\"/frontend/index\"},{\"text\":\"关于我\",\"link\":\"/about\"}],\"sidebar\":{\"/java/\":[{\"text\":\"Java 开发概述\",\"items\":[{\"text\":\"概述\",\"link\":\"/java/index\"}]},{\"text\":\"算法与数据结构\",\"items\":[{\"text\":\"哈希表算法详解\",\"link\":\"/java/algorithms/hash-table\"},{\"text\":\"双指针算法详解\",\"link\":\"/java/algorithms/two-pointers\"},{\"text\":\"滑动窗口算法详解\",\"link\":\"/java/algorithms/sliding-window\"}]},{\"text\":\"Java 并发编程\",\"items\":[{\"text\":\"并发编程索引\",\"link\":\"/java/concurrent/index\"},{\"text\":\"01 多线程初阶\",\"link\":\"/java/concurrent/concurrent-01\"},{\"text\":\"02 线程池详解\",\"link\":\"/java/concurrent/concurrent-02\"},{\"text\":\"03 锁的奥秘:Lock 接口\",\"link\":\"/java/concurrent/concurrent-03\"},{\"text\":\"04 如何正确关闭线程池\",\"link\":\"/java/concurrent/concurrent-04\"},{\"text\":\"05 三类线程安全问题\",\"link\":\"/java/concurrent/concurrent-05\"},{\"text\":\"06 虚拟线程深入解读\",\"link\":\"/java/concurrent/concurrent-06\"},{\"text\":\"Java 并发与集合核心知识点\",\"link\":\"/java/concurrent/java-core-knowledge\"},{\"text\":\"Java 线程池详解\",\"link\":\"/java/concurrent/thread-pool-detailed\"},{\"text\":\"线程池参数怎么配才不翻车\",\"link\":\"/java/concurrent/thread-pool-params-guide\"},{\"text\":\"Java 原子类详解\",\"link\":\"/java/concurrent/atomic\"},{\"text\":\"ThreadLocal 详解\",\"link\":\"/java/concurrent/threadlocal\"},{\"text\":\"Disruptor 高性能队列\",\"link\":\"/java/concurrent/disruptor\"},{\"text\":\"Chronicle Queue 持久化队列\",\"link\":\"/java/concurrent/chronicle-queue\"},{\"text\":\"JUC 常用工具类\",\"link\":\"/java/concurrent/juc-tools\"}]},{\"text\":\"JDK 基础\",\"items\":[{\"text\":\"JDK 新特性索引\",\"link\":\"/java/jdk/index\"},{\"text\":\"Java 26 新特性\",\"link\":\"/java/jdk/java-26\"},{\"text\":\"Optional 那些被忽略的用法\",\"link\":\"/java/jdk/optional-tricks\"},{\"text\":\"String.intern() 到底干了什么\",\"link\":\"/java/jdk/string-intern\"},{\"text\":\"try-with-resources 细节\",\"link\":\"/java/jdk/try-with-resources\"},{\"text\":\"Java SPI 实战:ServiceLoader\",\"link\":\"/java/jdk/service-loader\"},{\"text\":\"CompletableFuture 实战模板\",\"link\":\"/java/jdk/completablefuture-templates\"}]},{\"text\":\"Redis 缓存\",\"items\":[{\"text\":\"Redis 缓存概述\",\"link\":\"/java/redis/index\"},{\"text\":\"Redis 旁路缓存深度解析\",\"link\":\"/java/redis/cache-aside\"},{\"text\":\"Redis 缓存三大问题解决方案\",\"link\":\"/java/redis/cache-problems\"},{\"text\":\"Redis 分布式锁完整推导\",\"link\":\"/java/redis/distributed-lock\"},{\"text\":\"Redis 缓存与数据库一致性\",\"link\":\"/java/redis/cache-consistency\"},{\"text\":\"Redis 延迟双删真的可靠吗?\",\"link\":\"/java/redis/delayed-double-delete\"},{\"text\":\"Redis 删除缓存失败怎么办?\",\"link\":\"/java/redis/cache-delete-failure-retry\"},{\"text\":\"Redis 实现消息队列\",\"link\":\"/java/redis/redis-queue\"},{\"text\":\"Redis + Lua 脚本技巧\",\"link\":\"/java/redis/redis-lua-scripts\"},{\"text\":\"布隆过滤器\",\"link\":\"/java/redis/bloom-filter\"},{\"text\":\"Redis GEO 地理位置功能\",\"link\":\"/java/redis/redis-geo\"},{\"text\":\"Redis Stream 消息队列\",\"link\":\"/java/redis/redis-stream\"}]},{\"text\":\"消息队列\",\"items\":[{\"text\":\"消息队列索引\",\"link\":\"/java/mq/index\"},{\"text\":\"RabbitMQ 消息队列实战\",\"link\":\"/java/mq/rabbitmq\"},{\"text\":\"RabbitMQ 深入实战\",\"link\":\"/java/mq/rabbitmq-advanced\"},{\"text\":\"RabbitMQ 消费端幂等实战\",\"link\":\"/java/mq/rabbitmq-idempotency\"},{\"text\":\"RabbitMQ 消费失败重试设计\",\"link\":\"/java/mq/rabbitmq-retry-design\"},{\"text\":\"RabbitMQ 生产端可靠投递\",\"link\":\"/java/mq/rabbitmq-producer-reliable\"},{\"text\":\"Kafka 快速入门 + Spring Boot 集成\",\"link\":\"/java/mq/kafka-springboot\"},{\"text\":\"消息积压:如何快速排查与处理\",\"link\":\"/java/mq/mq-backlog-troubleshooting\"}]},{\"text\":\"MySQL 数据库\",\"items\":[{\"text\":\"MySQL 索引\",\"link\":\"/java/mysql/index\"},{\"text\":\"MySQL 锁机制详解\",\"link\":\"/java/mysql/mysql-lock\"},{\"text\":\"深入理解乐观锁与悲观锁\",\"link\":\"/java/mysql/lock\"},{\"text\":\"MySQL 事务隔离级别\",\"link\":\"/java/mysql/transaction-isolation\"},{\"text\":\"为什么加了索引还慢?\",\"link\":\"/java/mysql/index-invalid\"},{\"text\":\"MySQL 深分页为什么慢?\",\"link\":\"/java/mysql/deep-pagination\"},{\"text\":\"MySQL 复合索引怎么设计?\",\"link\":\"/java/mysql/composite-index-design\"},{\"text\":\"MySQL 实用 SQL 清单\",\"link\":\"/java/mysql/practical-sql-snippets\"},{\"text\":\"MySQL 常用业务 SQL\",\"link\":\"/java/mysql/practical-business-sql\"},{\"text\":\"订单状态机 SQL 实战\",\"link\":\"/java/mysql/order-status-machine-sql\"},{\"text\":\"MySQL JOIN 详解\",\"link\":\"/java/mysql/about-join\"},{\"text\":\"MySQL 子查询详解\",\"link\":\"/java/mysql/subquery\"},{\"text\":\"ShardingSphere 分库分表实战\",\"link\":\"/java/mysql/sharding-sphere\"},{\"text\":\"Spring Boot 集成 Neo4j 图数据库\",\"link\":\"/java/mysql/spring-neo4j\"}]},{\"text\":\"Elasticsearch\",\"items\":[{\"text\":\"Elasticsearch 索引\",\"link\":\"/java/elasticsearch/index\"},{\"text\":\"Elasticsearch 搜索引擎实战\",\"link\":\"/java/elasticsearch/es\"},{\"text\":\"Elasticsearch DSL 查询\",\"link\":\"/java/elasticsearch/es-dsl\"},{\"text\":\"Elasticsearch Term 查询\",\"link\":\"/java/elasticsearch/es-term\"},{\"text\":\"Elasticsearch Bucket 聚合\",\"link\":\"/java/elasticsearch/es-bucket\"}]},{\"text\":\"Docker 容器化\",\"items\":[{\"text\":\"Docker 索引\",\"link\":\"/java/docker/index\"},{\"text\":\"Docker 容器操作\",\"link\":\"/java/docker/docker-operation\"},{\"text\":\"Dockerfile 手把手入门\",\"link\":\"/java/docker/dockerfile-beginner\"},{\"text\":\"Dockerfile 实用指南\",\"link\":\"/java/docker/dockerfile\"},{\"text\":\"Dockerfile 最佳实践\",\"link\":\"/java/docker/docker-file\"},{\"text\":\"Docker Compose 入门指南\",\"link\":\"/java/docker/docker-compose\"}]},{\"text\":\"微服务\",\"items\":[{\"text\":\"微服务索引\",\"link\":\"/java/microservice/index\"},{\"text\":\"Dubbo 快速入门\",\"link\":\"/java/microservice/dubbo\"}]},{\"text\":\"Spring 框架\",\"items\":[{\"text\":\"Spring Data JPA 实战指南\",\"link\":\"/java/spring/spring-data-jpa\"},{\"text\":\"Caffeine 本地缓存\",\"link\":\"/java/spring/caffeine\"},{\"text\":\"Spring 声明式事务的三个坑\",\"link\":\"/java/spring/transactional\"},{\"text\":\"Spring 事务原理深度解析\",\"link\":\"/java/spring/transaction\"},{\"text\":\"Spring Boot 自动配置原理\",\"link\":\"/java/spring/auto-configuration\"}]},{\"text\":\"设计模式\",\"items\":[{\"text\":\"常见设计模式一网打尽\",\"link\":\"/java/design-patterns/all-patterns\"}]},{\"text\":\"业务实战\",\"items\":[{\"text\":\"订单超时取消与库存回滚\",\"link\":\"/java/business/order-timeout-cancel\"}]},{\"text\":\"开发工具\",\"items\":[{\"text\":\"Arthas 线上诊断实战\",\"link\":\"/java/tools/arthas\"},{\"text\":\"Jenkins 自动化部署实战\",\"link\":\"/java/devops/jekins\"},{\"text\":\"日志规范:怎么写才不算废话\",\"link\":\"/java/tools/logging-best-practices\"}]},{\"text\":\"网络与 Web\",\"items\":[{\"text\":\"网络索引\",\"link\":\"/java/network/index\"},{\"text\":\"TCP 三次握手与四次挥手\",\"link\":\"/java/network/tcp-handshake\"},{\"text\":\"Nginx 实战入门\",\"link\":\"/java/nginx/nginx\"},{\"text\":\"Nginx WebSocket 排障清单\",\"link\":\"/java/nginx/nginx-websocket-troubleshooting\"}]},{\"text\":\"微信生态\",\"items\":[{\"text\":\"微信支付核心功能\",\"link\":\"/java/wechat/wechat-pay\"},{\"text\":\"微信订阅消息\",\"link\":\"/java/wechat/wechat-subscribe\"}]},{\"text\":\"分布式与中间件\",\"items\":[{\"text\":\"Redisson 常用技巧\",\"link\":\"/java/distributed/redisson\"}]}],\"/frontend/\":[{\"text\":\"前端开发概述\",\"items\":[{\"text\":\"概述\",\"link\":\"/frontend/index\"}]},{\"text\":\"Vue.js\",\"items\":[{\"text\":\"Vue3 性能优化实战\",\"link\":\"/frontend/vue/vue3-performance\"},{\"text\":\"Vue 生命周期详解\",\"link\":\"/frontend/vue/vue-lifecycle\"},{\"text\":\"Vue3 响应式原理\",\"link\":\"/frontend/vue/vue-proxy\"},{\"text\":\"为什么 data 是一个函数?\",\"link\":\"/frontend/vue/why-data-is-function\"},{\"text\":\"文件上传实战\",\"link\":\"/frontend/vue/file-upload\"},{\"text\":\"Vue3 + TypeScript 常见问题\",\"link\":\"/frontend/vue/vue-ts\"}]},{\"text\":\"React\",\"items\":[{\"text\":\"Vue 与 React 对比\",\"link\":\"/frontend/react/framework-compare\"}]},{\"text\":\"构建工具\",\"items\":[{\"text\":\"Vite 配置详解\",\"link\":\"/frontend/vite/vite\"}]},{\"text\":\"跨端开发\",\"items\":[{\"text\":\"UniApp 进阶功能实战\",\"link\":\"/frontend/uniapp/uniapp\"}]},{\"text\":\"JavaScript\",\"items\":[{\"text\":\"JavaScript 索引\",\"link\":\"/frontend/javascript/index\"},{\"text\":\"JavaScript this 指向\",\"link\":\"/frontend/javascript/this\"},{\"text\":\"JavaScript 事件循环\",\"link\":\"/frontend/javascript/event-loop\"},{\"text\":\"ESLint 配置与使用\",\"link\":\"/frontend/javascript/eslint\"}]},{\"text\":\"微信生态\",\"items\":[{\"text\":\"前端微信支付接入\",\"link\":\"/frontend/wechat/wechat-pay\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/vuejs/vitepress\"}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>