mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-16 18:10:13 +08:00
598 lines
16 KiB
TypeScript
598 lines
16 KiB
TypeScript
import { sidebar } from "vuepress-theme-hope";
|
|
|
|
import { aboutTheAuthor } from "./about-the-author.js";
|
|
import { books } from "./books.js";
|
|
import { highQualityTechnicalArticles } from "./high-quality-technical-articles.js";
|
|
import { openSourceProject } from "./open-source-project.js";
|
|
|
|
export default sidebar({
|
|
// 应该把更精确的路径放置在前边
|
|
"/open-source-project/": openSourceProject,
|
|
"/books/": books,
|
|
"/about-the-author/": aboutTheAuthor,
|
|
"/high-quality-technical-articles/": highQualityTechnicalArticles,
|
|
"/zhuanlan/": [
|
|
"java-mian-shi-zhi-bei",
|
|
"back-end-interview-high-frequency-system-design-and-scenario-questions",
|
|
"handwritten-rpc-framework",
|
|
"source-code-reading",
|
|
],
|
|
// 必须放在最后面
|
|
"/": [
|
|
{
|
|
text: "项目介绍",
|
|
icon: "star",
|
|
collapsible: true,
|
|
prefix: "javaguide/",
|
|
children: ["intro", "use-suggestion", "contribution-guideline", "faq"],
|
|
},
|
|
{
|
|
text: "面试准备(必看)",
|
|
icon: "interview",
|
|
collapsible: true,
|
|
prefix: "interview-preparation/",
|
|
children: [
|
|
"teach-you-how-to-prepare-for-the-interview-hand-in-hand",
|
|
"resume-guide",
|
|
"key-points-of-interview",
|
|
"java-roadmap",
|
|
"project-experience-guide",
|
|
"how-to-handle-interview-nerves",
|
|
"internship-experience",
|
|
],
|
|
},
|
|
{
|
|
text: "Java",
|
|
icon: "java",
|
|
collapsible: true,
|
|
prefix: "java/",
|
|
children: [
|
|
{
|
|
text: "基础",
|
|
prefix: "basis/",
|
|
icon: "basic",
|
|
children: [
|
|
"java-basic-questions-01",
|
|
"java-basic-questions-02",
|
|
"java-basic-questions-03",
|
|
{
|
|
text: "重要知识点",
|
|
icon: "star",
|
|
collapsible: true,
|
|
children: [
|
|
"why-there-only-value-passing-in-java",
|
|
"serialization",
|
|
"generics-and-wildcards",
|
|
"reflection",
|
|
"proxy",
|
|
"bigdecimal",
|
|
"unsafe",
|
|
"spi",
|
|
"syntactic-sugar",
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "集合",
|
|
prefix: "collection/",
|
|
icon: "container",
|
|
children: [
|
|
"java-collection-questions-01",
|
|
"java-collection-questions-02",
|
|
"java-collection-precautions-for-use",
|
|
{
|
|
text: "源码分析",
|
|
icon: "star",
|
|
collapsible: true,
|
|
children: [
|
|
"arraylist-source-code",
|
|
"linkedlist-source-code",
|
|
"hashmap-source-code",
|
|
"concurrent-hash-map-source-code",
|
|
"linkedhashmap-source-code",
|
|
"copyonwritearraylist-source-code",
|
|
"arrayblockingqueue-source-code",
|
|
"priorityqueue-source-code",
|
|
"delayqueue-source-code",
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "并发编程",
|
|
prefix: "concurrent/",
|
|
icon: "et-performance",
|
|
children: [
|
|
"java-concurrent-questions-01",
|
|
"java-concurrent-questions-02",
|
|
"java-concurrent-questions-03",
|
|
{
|
|
text: "重要知识点",
|
|
icon: "star",
|
|
collapsible: true,
|
|
children: [
|
|
"optimistic-lock-and-pessimistic-lock",
|
|
"cas",
|
|
"jmm",
|
|
"java-thread-pool-summary",
|
|
"java-thread-pool-best-practices",
|
|
"java-concurrent-collections",
|
|
"aqs",
|
|
"atomic-classes",
|
|
"threadlocal",
|
|
"completablefuture-intro",
|
|
"virtual-thread",
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "IO",
|
|
prefix: "io/",
|
|
icon: "code",
|
|
collapsible: true,
|
|
children: ["io-basis", "io-design-patterns", "io-model", "nio-basis"],
|
|
},
|
|
{
|
|
text: "JVM",
|
|
prefix: "jvm/",
|
|
icon: "virtual_machine",
|
|
collapsible: true,
|
|
children: [
|
|
"memory-area",
|
|
"jvm-garbage-collection",
|
|
"class-file-structure",
|
|
"class-loading-process",
|
|
"classloader",
|
|
"jvm-parameters-intro",
|
|
"jdk-monitoring-and-troubleshooting-tools",
|
|
"jvm-in-action",
|
|
],
|
|
},
|
|
{
|
|
text: "新特性",
|
|
prefix: "new-features/",
|
|
icon: "featured",
|
|
collapsible: true,
|
|
children: [
|
|
"java8-common-new-features",
|
|
"java8-tutorial-translate",
|
|
"java9",
|
|
"java10",
|
|
"java11",
|
|
"java12-13",
|
|
"java14-15",
|
|
"java16",
|
|
"java17",
|
|
"java18",
|
|
"java19",
|
|
"java20",
|
|
"java21",
|
|
"java22-23",
|
|
"java24",
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "计算机基础",
|
|
icon: "computer",
|
|
prefix: "cs-basics/",
|
|
collapsible: true,
|
|
children: [
|
|
{
|
|
text: "网络",
|
|
prefix: "network/",
|
|
icon: "network",
|
|
children: [
|
|
"other-network-questions",
|
|
"other-network-questions2",
|
|
// "computer-network-xiexiren-summary",
|
|
{
|
|
text: "重要知识点",
|
|
icon: "star",
|
|
collapsible: true,
|
|
children: [
|
|
"osi-and-tcp-ip-model",
|
|
"the-whole-process-of-accessing-web-pages",
|
|
"application-layer-protocol",
|
|
"http-vs-https",
|
|
"http1.0-vs-http1.1",
|
|
"http-status-codes",
|
|
"dns",
|
|
"tcp-connection-and-disconnection",
|
|
"tcp-reliability-guarantee",
|
|
"arp",
|
|
"nat",
|
|
"network-attack-means",
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "操作系统",
|
|
prefix: "operating-system/",
|
|
icon: "caozuoxitong",
|
|
children: [
|
|
"operating-system-basic-questions-01",
|
|
"operating-system-basic-questions-02",
|
|
{
|
|
text: "Linux",
|
|
collapsible: true,
|
|
icon: "linux",
|
|
children: ["linux-intro", "shell-intro"],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "数据结构",
|
|
prefix: "data-structure/",
|
|
icon: "people-network-full",
|
|
collapsible: true,
|
|
children: [
|
|
"linear-data-structure",
|
|
"graph",
|
|
"heap",
|
|
"tree",
|
|
"red-black-tree",
|
|
"bloom-filter",
|
|
],
|
|
},
|
|
{
|
|
text: "算法",
|
|
prefix: "algorithms/",
|
|
icon: "suanfaku",
|
|
collapsible: true,
|
|
children: [
|
|
"classical-algorithm-problems-recommendations",
|
|
"common-data-structures-leetcode-recommendations",
|
|
"string-algorithm-problems",
|
|
"linkedlist-algorithm-problems",
|
|
"the-sword-refers-to-offer",
|
|
"10-classical-sorting-algorithms",
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "数据库",
|
|
icon: "database",
|
|
prefix: "database/",
|
|
collapsible: true,
|
|
children: [
|
|
{
|
|
text: "基础",
|
|
icon: "basic",
|
|
children: [
|
|
"basis",
|
|
"nosql",
|
|
"character-set",
|
|
{
|
|
text: "SQL",
|
|
icon: "SQL",
|
|
prefix: "sql/",
|
|
collapsible: true,
|
|
children: [
|
|
"sql-syntax-summary",
|
|
"sql-questions-01",
|
|
"sql-questions-02",
|
|
"sql-questions-03",
|
|
"sql-questions-04",
|
|
"sql-questions-05",
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "MySQL",
|
|
prefix: "mysql/",
|
|
icon: "mysql",
|
|
children: [
|
|
"mysql-questions-01",
|
|
"mysql-high-performance-optimization-specification-recommendations",
|
|
{
|
|
text: "重要知识点",
|
|
icon: "star",
|
|
collapsible: true,
|
|
children: [
|
|
"mysql-index",
|
|
{
|
|
text: "MySQL三大日志详解",
|
|
link: "mysql-logs",
|
|
},
|
|
"transaction-isolation-level",
|
|
"innodb-implementation-of-mvcc",
|
|
"how-sql-executed-in-mysql",
|
|
"mysql-query-cache",
|
|
"mysql-query-execution-plan",
|
|
"mysql-auto-increment-primary-key-continuous",
|
|
"some-thoughts-on-database-storage-time",
|
|
"index-invalidation-caused-by-implicit-conversion",
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "Redis",
|
|
prefix: "redis/",
|
|
icon: "redis",
|
|
children: [
|
|
"cache-basics",
|
|
"redis-questions-01",
|
|
"redis-questions-02",
|
|
{
|
|
text: "重要知识点",
|
|
icon: "star",
|
|
collapsible: true,
|
|
children: [
|
|
"redis-delayed-task",
|
|
"3-commonly-used-cache-read-and-write-strategies",
|
|
"redis-data-structures-01",
|
|
"redis-data-structures-02",
|
|
"redis-skiplist",
|
|
"redis-persistence",
|
|
"redis-memory-fragmentation",
|
|
"redis-common-blocking-problems-summary",
|
|
"redis-cluster",
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "Elasticsearch",
|
|
prefix: "elasticsearch/",
|
|
icon: "elasticsearch",
|
|
collapsible: true,
|
|
children: ["elasticsearch-questions-01"],
|
|
},
|
|
{
|
|
text: "MongoDB",
|
|
prefix: "mongodb/",
|
|
icon: "mongodb",
|
|
collapsible: true,
|
|
children: ["mongodb-questions-01", "mongodb-questions-02"],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "开发工具",
|
|
icon: "tool",
|
|
prefix: "tools/",
|
|
collapsible: true,
|
|
children: [
|
|
{
|
|
text: "Maven",
|
|
icon: "configuration",
|
|
prefix: "maven/",
|
|
children: ["maven-core-concepts", "maven-best-practices"],
|
|
},
|
|
{
|
|
text: "Gradle",
|
|
icon: "gradle",
|
|
prefix: "gradle/",
|
|
children: ["gradle-core-concepts"],
|
|
},
|
|
{
|
|
text: "Git",
|
|
icon: "git",
|
|
prefix: "git/",
|
|
children: ["git-intro", "github-tips"],
|
|
},
|
|
{
|
|
text: "Docker",
|
|
icon: "docker1",
|
|
prefix: "docker/",
|
|
children: ["docker-intro", "docker-in-action"],
|
|
},
|
|
{
|
|
text: "IDEA",
|
|
icon: "intellijidea",
|
|
link: "https://gitee.com/SnailClimb/awesome-idea-tutorial",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "常用框架",
|
|
prefix: "system-design/framework/",
|
|
icon: "component",
|
|
collapsible: true,
|
|
children: [
|
|
{
|
|
text: "Spring&Spring Boot",
|
|
icon: "bxl-spring-boot",
|
|
prefix: "spring/",
|
|
children: [
|
|
"spring-knowledge-and-questions-summary",
|
|
"springboot-knowledge-and-questions-summary",
|
|
"spring-common-annotations",
|
|
"springboot-source-code",
|
|
{
|
|
text: "重要知识点",
|
|
icon: "star",
|
|
collapsible: true,
|
|
children: [
|
|
"ioc-and-aop",
|
|
"spring-transaction",
|
|
"spring-design-patterns-summary",
|
|
"spring-boot-auto-assembly-principles",
|
|
"async",
|
|
],
|
|
},
|
|
],
|
|
},
|
|
"mybatis/mybatis-interview",
|
|
"netty",
|
|
],
|
|
},
|
|
{
|
|
text: "系统设计",
|
|
icon: "design",
|
|
prefix: "system-design/",
|
|
collapsible: true,
|
|
children: [
|
|
{
|
|
text: "基础知识",
|
|
prefix: "basis/",
|
|
icon: "basic",
|
|
collapsible: true,
|
|
children: [
|
|
"RESTfulAPI",
|
|
"software-engineering",
|
|
"naming",
|
|
"refactoring",
|
|
{
|
|
text: "单元测试指南",
|
|
link: "unit-test",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "认证授权",
|
|
prefix: "security/",
|
|
icon: "security-fill",
|
|
collapsible: true,
|
|
children: [
|
|
"basis-of-authority-certification",
|
|
"jwt-intro",
|
|
"advantages-and-disadvantages-of-jwt",
|
|
"sso-intro",
|
|
"design-of-authority-system",
|
|
],
|
|
},
|
|
{
|
|
text: "数据安全",
|
|
prefix: "security/",
|
|
icon: "security-fill",
|
|
collapsible: true,
|
|
children: [
|
|
"encryption-algorithms",
|
|
"sentive-words-filter",
|
|
"data-desensitization",
|
|
"data-validation",
|
|
],
|
|
},
|
|
"system-design-questions",
|
|
"design-pattern",
|
|
"schedule-task",
|
|
"web-real-time-message-push",
|
|
],
|
|
},
|
|
{
|
|
text: "分布式",
|
|
icon: "distributed-network",
|
|
prefix: "distributed-system/",
|
|
collapsible: true,
|
|
children: [
|
|
{
|
|
text: "理论&算法&协议",
|
|
icon: "suanfaku",
|
|
prefix: "protocol/",
|
|
collapsible: true,
|
|
children: [
|
|
"cap-and-base-theorem",
|
|
"paxos-algorithm",
|
|
"raft-algorithm",
|
|
"gossip-protocl",
|
|
],
|
|
},
|
|
{
|
|
text: "API网关",
|
|
icon: "gateway",
|
|
children: ["api-gateway", "spring-cloud-gateway-questions"],
|
|
},
|
|
{
|
|
text: "分布式ID",
|
|
icon: "id",
|
|
children: ["distributed-id", "distributed-id-design"],
|
|
},
|
|
{
|
|
text: "分布式锁",
|
|
icon: "lock",
|
|
children: ["distributed-lock", "distributed-lock-implementations"],
|
|
},
|
|
{
|
|
text: "分布式事务",
|
|
icon: "transanction",
|
|
children: ["distributed-transaction"],
|
|
},
|
|
{
|
|
text: "分布式配置中心",
|
|
icon: "configuration",
|
|
children: ["distributed-configuration-center"],
|
|
},
|
|
{
|
|
text: "RPC",
|
|
prefix: "rpc/",
|
|
icon: "network",
|
|
collapsible: true,
|
|
children: ["rpc-intro", "dubbo"],
|
|
},
|
|
{
|
|
text: "ZooKeeper",
|
|
prefix: "distributed-process-coordination/zookeeper/",
|
|
icon: "framework",
|
|
collapsible: true,
|
|
children: ["zookeeper-intro", "zookeeper-plus"],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "高性能",
|
|
icon: "et-performance",
|
|
prefix: "high-performance/",
|
|
collapsible: true,
|
|
children: [
|
|
{
|
|
text: "CDN",
|
|
icon: "cdn",
|
|
children: ["cdn"],
|
|
},
|
|
{
|
|
text: "负载均衡",
|
|
icon: "fuzaijunheng",
|
|
children: ["load-balancing"],
|
|
},
|
|
{
|
|
text: "数据库优化",
|
|
icon: "mysql",
|
|
children: [
|
|
"read-and-write-separation-and-library-subtable",
|
|
"data-cold-hot-separation",
|
|
"sql-optimization",
|
|
"deep-pagination-optimization",
|
|
],
|
|
},
|
|
{
|
|
text: "消息队列",
|
|
prefix: "message-queue/",
|
|
icon: "MQ",
|
|
collapsible: true,
|
|
children: [
|
|
"message-queue",
|
|
"disruptor-questions",
|
|
"kafka-questions-01",
|
|
"rocketmq-questions",
|
|
"rabbitmq-questions",
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "高可用",
|
|
icon: "highavailable",
|
|
prefix: "high-availability/",
|
|
collapsible: true,
|
|
children: [
|
|
"high-availability-system-design",
|
|
"idempotency",
|
|
"redundancy",
|
|
"limit-request",
|
|
"fallback-and-circuit-breaker",
|
|
"timeout-and-retry",
|
|
"performance-test",
|
|
],
|
|
},
|
|
],
|
|
});
|