learn.lianglianglee.com/index.html
2022-05-11 18:46:27 +08:00

765 lines
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- saved from url=(0046)https://kaiiiz.github.io/hexo-theme-book-demo/ -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="icon" href="/static/favicon.png">
<title>note-submit</title>
<!-- Spectre.css framework -->
<link rel="stylesheet" href="/static/index.css">
<!-- theme css & js -->
<meta name="generator" content="Hexo 4.2.0">
</head>
<body>
<div class="book-container">
<div class="book-sidebar">
<div class="book-brand">
<a href="/">
<img src="/static/favicon.png">
<span>技术文章摘抄</span>
</a>
</div>
<div class="book-menu uncollapsible">
<ul class="uncollapsible">
<li><a href="/" class="current-tab">首页</a></li>
</ul>
<ul class="uncollapsible">
<li><a href="../">上一级</a></li>
</ul>
<ul class="uncollapsible">
<li>
<a href="/PDF">PDF</a>
</li>
<li>
<a href="/专栏">专栏</a>
</li>
<li>
<a href="/恋爱必修课">恋爱必修课</a>
</li>
<li>
<a href="/文章">文章</a>
</li>
<li>
<a href="/极客时间">极客时间</a>
</li>
</ul>
</div>
</div>
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
<div class="sidebar-toggle-inner"></div>
</div>
<script>
function add_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.add('show')
}
function remove_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.remove('show')
}
function sidebar_toggle() {
let sidebar_toggle = document.querySelector('.sidebar-toggle')
let sidebar = document.querySelector('.book-sidebar')
let content = document.querySelector('.off-canvas-content')
if (sidebar_toggle.classList.contains('extend')) { // show
sidebar_toggle.classList.remove('extend')
sidebar.classList.remove('hide')
content.classList.remove('extend')
} else { // hide
sidebar_toggle.classList.add('extend')
sidebar.classList.add('hide')
content.classList.add('extend')
}
}
function open_sidebar() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.add('show')
overlay.classList.add('show')
}
function hide_canvas() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.remove('show')
overlay.classList.remove('show')
}
</script>
<div class="off-canvas-content">
<div class="columns">
<div class="column col-12 col-lg-12">
<div class="book-navbar">
<!-- For Responsive Layout -->
<header class="navbar">
<section class="navbar-section">
<a onclick="open_sidebar()">
<i class="icon icon-menu"></i>
</a>
</section>
</header>
</div>
<div class="book-content" style="max-width: 960px; margin: 0 auto;
overflow-x: auto;
overflow-y: hidden;">
<div class="book-post">
<p id="tip" align="center"></p>
<div><h1> 目录</h1>
<ul>
<li><a href = '/PDF'>PDF</a> </li>
<ul>
</ul>
<li><a href = '/专栏'>专栏</a> </li>
<ul>
<li><a href = '/专栏/12步通关求职面试-完'>12步通关求职面试-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/22 讲通关 Go 语言-完'>22 讲通关 Go 语言-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/24讲吃透分布式数据库-完'>24讲吃透分布式数据库-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/300分钟吃透分布式缓存-完'>300分钟吃透分布式缓存-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/CNCF X 阿里巴巴云原生技术公开课'>CNCF X 阿里巴巴云原生技术公开课</a> </li>
<ul>
</ul>
<li><a href = '/专栏/DDD 微服务落地实战'>DDD 微服务落地实战</a> </li>
<ul>
</ul>
<li><a href = '/专栏/DDD实战课'>DDD实战课</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Dubbo源码解读与实战-完'>Dubbo源码解读与实战-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/ElasticSearch知识体系详解'>ElasticSearch知识体系详解</a> </li>
<ul>
</ul>
<li><a href = '/专栏/JVM 核心技术 32 讲(完)'>JVM 核心技术 32 讲(完)</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Java 业务开发常见错误 100 例'>Java 业务开发常见错误 100 例</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Java 并发编程 78 讲-完'>Java 并发编程 78 讲-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Java 性能优化实战-完'>Java 性能优化实战-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Java并发编程实战'>Java并发编程实战</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Kafka核心技术与实战'>Kafka核心技术与实战</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Kubernetes 从上手到实践'>Kubernetes 从上手到实践</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Kubernetes 实践入门指南'>Kubernetes 实践入门指南</a> </li>
<ul>
</ul>
<li><a href = '/专栏/MySQL实战45讲'>MySQL实战45讲</a> </li>
<ul>
</ul>
<li><a href = '/专栏/MySQL实战宝典'>MySQL实战宝典</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Netty 核心原理剖析与 RPC 实践-完'>Netty 核心原理剖析与 RPC 实践-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/OKR组织敏捷目标和绩效管理-完'>OKR组织敏捷目标和绩效管理-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Redis 核心原理与实战'>Redis 核心原理与实战</a> </li>
<ul>
</ul>
<li><a href = '/专栏/RocketMQ 实战与进阶(完)'>RocketMQ 实战与进阶(完)</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Serverless 技术公开课(完)'>Serverless 技术公开课(完)</a> </li>
<ul>
</ul>
<li><a href = '/专栏/ShardingSphere 核心原理精讲-完'>ShardingSphere 核心原理精讲-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Spring Boot 实战开发'>Spring Boot 实战开发</a> </li>
<ul>
</ul>
<li><a href = '/专栏/Spring Security 详解与实操'>Spring Security 详解与实操</a> </li>
<ul>
</ul>
<li><a href = '/专栏/SpringCloud微服务实战'>SpringCloud微服务实战</a> </li>
<ul>
</ul>
<li><a href = '/专栏/ZooKeeper源码分析与实战-完'>ZooKeeper源码分析与实战-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/互联网消费金融高并发领域设计'>互联网消费金融高并发领域设计</a> </li>
<ul>
</ul>
<li><a href = '/专栏/全解网络协议'>全解网络协议</a> </li>
<ul>
</ul>
<li><a href = '/专栏/分布式中间件实践之路(完)'>分布式中间件实践之路(完)</a> </li>
<ul>
</ul>
<li><a href = '/专栏/分布式技术原理与实战45讲-完'>分布式技术原理与实战45讲-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/分布式链路追踪实战-完'>分布式链路追踪实战-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/前端工程化精讲-完'>前端工程化精讲-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/容器实战高手课'>容器实战高手课</a> </li>
<ul>
</ul>
<li><a href = '/专栏/左耳听风'>左耳听风</a> </li>
<ul>
</ul>
<li><a href = '/专栏/微服务质量保障 20 讲-完'>微服务质量保障 20 讲-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/架构设计面试精讲'>架构设计面试精讲</a> </li>
<ul>
</ul>
<li><a href = '/专栏/案例上手 Spring Boot WebFlux'>案例上手 Spring Boot WebFlux</a> </li>
<ul>
</ul>
<li><a href = '/专栏/消息队列高手课'>消息队列高手课</a> </li>
<ul>
</ul>
<li><a href = '/专栏/深入剖析 MyBatis 核心原理-完'>深入剖析 MyBatis 核心原理-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/深入拆解Java虚拟机'>深入拆解Java虚拟机</a> </li>
<ul>
</ul>
<li><a href = '/专栏/深入浅出 Docker 技术栈实践课(完)'>深入浅出 Docker 技术栈实践课(完)</a> </li>
<ul>
</ul>
<li><a href = '/专栏/深入浅出 Java 虚拟机-完'>深入浅出 Java 虚拟机-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/深入浅出计算机组成原理'>深入浅出计算机组成原理</a> </li>
<ul>
</ul>
<li><a href = '/专栏/深入理解 Sentinel'>深入理解 Sentinel</a> </li>
<ul>
</ul>
<li><a href = '/专栏/由浅入深吃透 Docker-完'>由浅入深吃透 Docker-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/白话设计模式 28 讲(完)'>白话设计模式 28 讲(完)</a> </li>
<ul>
</ul>
<li><a href = '/专栏/程序员的数学课'>程序员的数学课</a> </li>
<ul>
</ul>
<li><a href = '/专栏/说透性能测试'>说透性能测试</a> </li>
<ul>
</ul>
<li><a href = '/专栏/软件工程之美'>软件工程之美</a> </li>
<ul>
</ul>
<li><a href = '/专栏/透视HTTP协议'>透视HTTP协议</a> </li>
<ul>
</ul>
<li><a href = '/专栏/重学操作系统-完'>重学操作系统-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/重学数据结构与算法-完'>重学数据结构与算法-完</a> </li>
<ul>
</ul>
<li><a href = '/专栏/领域驱动设计实践(完)'>领域驱动设计实践(完)</a> </li>
<ul>
</ul>
<li><a href = '/专栏/高并发系统设计40问'>高并发系统设计40问</a> </li>
<ul>
</ul>
</ul>
<li><a href = '/恋爱必修课'>恋爱必修课</a> </li>
<ul>
</ul>
<li><a href = '/文章'>文章</a> </li>
<ul>
</ul>
<li><a href = '/极客时间'>极客时间</a> </li>
<ul>
</ul>
</ul>
</div>
</div>
<div>
</div>
</div>
</div>
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"70996b2f083d3d60","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}' crossorigin="anonymous"></script>
</body>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
var path = window.location.pathname
var cookie = getCookie("lastPath");
console.log(path)
if (path.replace("/", "") === "") {
if (cookie.replace("/", "") !== "") {
console.log(cookie)
document.getElementById("tip").innerHTML = "<a href='" + cookie + "'>跳转到上次进度</a>"
}
} else {
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return "";
}
</script>
</html>