diff --git a/README.en.md b/README.en.md index 4610f24a..08ae0e73 100644 --- a/README.en.md +++ b/README.en.md @@ -1,32 +1,23 @@ -

- - - -

-

- 阅读 - stars - forks - issues -

-

Recommended

- - - - - - -
- - -
+
+[![logo](https://oss.javaguide.cn/github/javaguide/csdn/1c00413c65d1995993bf2b0daf7b4f03.png)](https://github.com/Snailclimb/JavaGuide) + +[![阅读](https://img.shields.io/badge/阅读-read-brightgreen.svg)](https://javaguide.cn/) +![Stars](https://img.shields.io/github/stars/Snailclimb/JavaGuide) +![forks](https://img.shields.io/github/forks/Snailclimb/JavaGuide) +![issues](https://img.shields.io/github/issues/Snailclimb/JavaGuide) + +### Recommended + +[](https://sourl.cn/e7ee87) + +
## Java ### Basis -**Knowledge points/interview questions**: (Must see:+1: ): +**Knowledge points/interview questions**: (Must see:+1: ): - [Java Basics Knowledge Points/Interview Questions Summary(1)](docs/java/basis/java-basic-questions-01.md) - [Java Basics Knowledge Points/Interview Questions Summary(2)](docs/java/basis/java-basic-questions-01.md) @@ -45,8 +36,8 @@ 1. **[Java collection FAQ summary](docs/java/collection/java集合框架基础知识&面试题总结.md)** (must see :+1:) 2. [Summary of considerations for using Java containers](docs/java/collection/java集合使用注意事项.md) 3. **source code analysis** : [ArrayList source code + expansion mechanism analysis](docs/java/collection/arraylist-source-code.md), -[HashMap(JDK1.8) source code + underlying data structure analysis](docs/java/collection/ hashmap-source-code.md), -[ConcurrentHashMap source code + underlying data structure analysis](docs/java/collection/concurrent-hash-map-source-code.md) + [HashMap(JDK1.8) source code + underlying data structure analysis](docs/java/collection/ hashmap-source-code.md), + [ConcurrentHashMap source code + underlying data structure analysis](docs/java/collection/concurrent-hash-map-source-code.md) ### Concurrency @@ -87,7 +78,6 @@ This part of JVM mainly refers to [JVM Virtual Machine Specification-Java8 ](htt 1. [JAD decompile](docs/java/tips/JAD反编译tricks.md) 2. [Handy for locating common Java performance problems](./docs/java/tips/locate-performance-problems/手把手教你定位常见Java性能问题.md) - ## Computer Basics 👉 **[Illustrated Computer Fundamentals PDF Download](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100021725&idx=1&sn=2db9664ca25363139a81691043e9fd8f&chksm=4ea19a1679d61300d8990f7e43bfc7f476577a81b712cf0f9c6f6552a8b219bc081efddb5c54#rd)** . @@ -110,19 +100,18 @@ This part of JVM mainly refers to [JVM Virtual Machine Specification-Java8 ](htt 1. [Linear data structure :array, chain table, stack, queue](docs/cs-basics/data-structure/线性数据结构.md) 2. [diagram](docs/cs-basics/data-structure/图.md) 3. [heap](docs/cs-basics/data-structure/堆.md) -4. [tree](docs/cs-basics/data-structure/树.md) : focus on [red-black-tree](docs/cs-basics/data-structure/红黑树.md), B-, B+, B* tree, LSM tree +4. [tree](docs/cs-basics/data-structure/树.md) : focus on [red-black-tree](docs/cs-basics/data-structure/红黑树.md), B-, B+, B\* tree, LSM tree Other common data structures : 1. 1. [Bloom filter](docs/cs-basics/data-structure/bloom-filter.md) - ### Algorithm This part of the algorithm is very important, if you do not know how to learn the algorithm, you can look at what I wrote. - [Recommended Algorithm Learning Books + Resources](https://www.zhihu.com/question/323359308/answer/1545320858) 。 -- [如何刷Leetcode?](https://www.zhihu.com/question/31092580/answer/1534887374) +- [如何刷 Leetcode?](https://www.zhihu.com/question/31092580/answer/1534887374) **Summary of common algorithm problems** : @@ -130,7 +119,7 @@ This part of the algorithm is very important, if you do not know how to learn th - [Summary of several common algorithm problems of the chain table ](docs/cs-basics/algorithms/几道常见的链表算法题.md) - [Link offer some programming questions](docs/cs-basics/algorithms/剑指offer部分编程题.md) -In addition,[GeeksforGeeks]( https://www.geeksforgeeks.org/fundamentals-of-algorithms/) This site summarizes the common algorithms, which are more comprehensive and systematic. +In addition,[GeeksforGeeks](https://www.geeksforgeeks.org/fundamentals-of-algorithms/) This site summarizes the common algorithms, which are more comprehensive and systematic. ## Database @@ -140,7 +129,7 @@ In addition,[GeeksforGeeks]( https://www.geeksforgeeks.org/fundamentals-of-alg 1. [Database Basics Summary](docs/database/数据库基础知识.md) 2. **[MySQL Knowledge Summary](docs/database/mysql/mysql知识点&面试题总结.md)** (Must see:+1:) -5. [MySQL High Performance Optimization Specification Recommendations](docs/database/mysql/mysql-high-performance-optimization-specification-recommendations.md) +3. [MySQL High Performance Optimization Specification Recommendations](docs/database/mysql/mysql-high-performance-optimization-specification-recommendations.md) **Important knowledge points:** @@ -182,15 +171,15 @@ If you have not touched Java Web development, you can first look at my summary o #### Spring/SpringBoot (must see :+1:) -**Knowledge/Interview Questions:** +**Knowledge/Interview Questions:** 1. **[Spring FAQ Summary](docs/system-design/framework/spring/Spring常见问题总结.md)** 2. **[SpringBoot Getting Started Guide](https://github.com/Snailclimb/springboot-guide)** **Important Knowledge Points Explained:** 1. -1. **[Spring/Spring Boot common annotations summary! Arrangement!](./docs/system-design/framework/spring/Spring&SpringBoot常用注解总结.md)** -2. **[Spring Transaction Summary](docs/system-design/framework/spring/Spring事务总结.md)** +1. **[Spring/Spring Boot common annotations summary! Arrangement!](./docs/system-design/framework/spring/Spring&SpringBoot常用注解总结.md)** +2. **[Spring Transaction Summary](docs/system-design/framework/spring/Spring事务总结.md)** 3. [What design patterns are used in Spring?](docs/system-design/framework/spring/Spring设计模式总结.md) 4. **[SpringBoot auto-assembly principle?"](docs/system-design/framework/spring/SpringBoot自动装配原理.md)** @@ -205,6 +194,7 @@ If you have not touched Java Web development, you can first look at my summary o **[Fundamentals of Certification Authorization](docs/system-design/security/basis-of-authority-certification.md)** In this article I will introduce the common concepts of authentication and authorization: **Authentication**, **Authorization** and **Cookie**, **Session**, Token, **OAuth 2**, **SSO**. If you are not clear about these concepts, we suggest you read this article properly. - **JWT** : JWT (JSON Web Token) is a form of authentication, where a JWT is essentially a signed piece of data in JSON format. Since it is signed, the recipient can verify its authenticity. Related reading. + - [JWT Pros and Cons Analysis and Solutions to Common Problems](docs/system-design/security/jwt优缺点分析以及常见问题解决方案.md) - [Demo for beginners to get started with Spring Security With JWT](https://github.com/Snailclimb/spring-security-jwt-guide) @@ -212,7 +202,7 @@ If you have not touched Java Web development, you can first look at my summary o #### Data Desensitization -Data desensitization means that we deform sensitive information data according to specific rules, for example, we replace certain digits of cell phone numbers and ID numbers with *. +Data desensitization means that we deform sensitive information data according to specific rules, for example, we replace certain digits of cell phone numbers and ID numbers with \*. ### Timed tasks diff --git a/README.md b/README.md index a8c86512..84321d7a 100755 --- a/README.md +++ b/README.md @@ -1,46 +1,37 @@ 推荐你通过在线阅读网站进行阅读,体验更好,速度更快! -* **[JavaGuide 在线阅读网站(新版,推荐👍)](https://javaguide.cn/)** -* [JavaGuide 在线阅读版(老版)](https://snailclimb.gitee.io/javaguide/#/) +- **[JavaGuide 在线阅读网站(新版,推荐 👍)](https://javaguide.cn/)** +- [JavaGuide 在线阅读版(老版)](https://snailclimb.gitee.io/javaguide/#/) + +[](https://sourl.cn/e7ee87) + +
+ +[![logo](https://oss.javaguide.cn/github/javaguide/csdn/1c00413c65d1995993bf2b0daf7b4f03.png)](https://github.com/Snailclimb/JavaGuide) + +[![阅读](https://img.shields.io/badge/阅读-read-brightgreen.svg)](https://javaguide.cn/) +![Stars](https://img.shields.io/github/stars/Snailclimb/JavaGuide) +![forks](https://img.shields.io/github/forks/Snailclimb/JavaGuide) +![issues](https://img.shields.io/github/issues/Snailclimb/JavaGuide) + +[GitHub](https://github.com/Snailclimb/JavaGuide) | [Gitee](https://gitee.com/SnailClimb/JavaGuide) -
-

- - - -

-

- - - -

-

- 阅读 - stars - forks - issues -

-

- Github | - Gitee -

- > 1. **面试专版** :准备面试的小伙伴可以考虑面试专版:[《Java 面试指北 》](https://javaguide.cn/zhuanlan/java-mian-shi-zhi-bei.html) (质量很高,专为面试打造,配合 JavaGuide 食用)。 > 1. **知识星球** :专属面试小册/一对一交流/简历修改/专属求职指南,欢迎加入 [JavaGuide 知识星球](https://javaguide.cn/about-the-author/zhishixingqiu-two-years.html)(点击链接即可查看星球的详细介绍,一定一定一定确定自己真的需要再加入,一定一定要看完详细介绍之后再加我)。 -> 2. **转载须知** :以下所有文章如非文首说明为转载皆为我(Guide 哥)的原创,转载在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境! +> 1. **转载须知** :以下所有文章如非文首说明为转载皆为我(Guide 哥)的原创,转载在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境! -
- +
+
## 项目相关 -* [项目介绍](./docs/javaguide/intro.md) -* [贡献指南](./docs/javaguide/contribution-guideline.md) -* [常见问题](./docs/javaguide/faq.md) -* [项目待办](./docs/javaguide/todo.md) +- [项目介绍](./docs/javaguide/intro.md) +- [贡献指南](./docs/javaguide/contribution-guideline.md) +- [常见问题](./docs/javaguide/faq.md) +- [项目待办](./docs/javaguide/todo.md) ## Java @@ -74,15 +65,15 @@ **源码分析** : -* [ArrayList 源码+扩容机制分析](./docs/java/collection/arraylist-source-code.md) -* [HashMap(JDK1.8)源码+底层数据结构分析](./docs/java/collection/hashmap-source-code.md) -* [ConcurrentHashMap 源码+底层数据结构分析](./docs/java/collection/concurrent-hash-map-source-code.md) +- [ArrayList 源码+扩容机制分析](./docs/java/collection/arraylist-source-code.md) +- [HashMap(JDK1.8)源码+底层数据结构分析](./docs/java/collection/hashmap-source-code.md) +- [ConcurrentHashMap 源码+底层数据结构分析](./docs/java/collection/concurrent-hash-map-source-code.md) ### IO -* [IO 基础知识总结](./docs/java/io/io-basis.md) -* [IO 设计模式总结](./docs/java/io/io-design-patterns.md) -* [IO 模型详解](./docs/java/io/io-model.md) +- [IO 基础知识总结](./docs/java/io/io-basis.md) +- [IO 设计模式总结](./docs/java/io/io-design-patterns.md) +- [IO 模型详解](./docs/java/io/io-model.md) ### 并发 @@ -100,11 +91,11 @@ - [Java 并发容器总结](./docs/java/concurrent/java-concurrent-collections.md) - [Atomic 原子类总结](./docs/java/concurrent/atomic-classes.md) - [AQS 详解](./docs/java/concurrent/aqs.md) -- [CompletableFuture详解](./docs/java/concurrent/completablefuture-intro.md) +- [CompletableFuture 详解](./docs/java/concurrent/completablefuture-intro.md) ### JVM (必看 :+1:) -JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html) 和周志明老师的[《深入理解Java虚拟机(第3版)》](https://book.douban.com/subject/34907497/) (强烈建议阅读多遍!)。 +JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html) 和周志明老师的[《深入理解 Java 虚拟机(第 3 版)》](https://book.douban.com/subject/34907497/) (强烈建议阅读多遍!)。 - **[Java 内存区域](./docs/java/jvm/memory-area.md)** - **[JVM 垃圾回收](./docs/java/jvm/jvm-garbage-collection.md)** @@ -117,7 +108,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle ### 新特性 -- **Java 8** :[Java 8 新特性总结(翻译)](./docs/java/new-features/java8-tutorial-translate.md)、[Java8常用新特性总结](./docs/java/new-features/java8-common-new-features.md) +- **Java 8** :[Java 8 新特性总结(翻译)](./docs/java/new-features/java8-tutorial-translate.md)、[Java8 常用新特性总结](./docs/java/new-features/java8-common-new-features.md) - [Java 9 新特性概览](./docs/java/new-features/java9.md) - [Java 10 新特性概览](./docs/java/new-features/java10.md) - [Java 11 新特性概览](./docs/java/new-features/java11.md) @@ -166,7 +157,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle - [线性数据结构 :数组、链表、栈、队列](./docs/cs-basics/data-structure/linear-data-structure.md) - [图](./docs/cs-basics/data-structure/graph.md) - [堆](./docs/cs-basics/data-structure/heap.md) -- [树](./docs/cs-basics/data-structure/tree.md) :重点关注[红黑树](./docs/cs-basics/data-structure/red-black-tree.md)、B-,B+,B*树、LSM树 +- [树](./docs/cs-basics/data-structure/tree.md) :重点关注[红黑树](./docs/cs-basics/data-structure/red-black-tree.md)、B-,B+,B\*树、LSM 树 其他常用数据结构 : @@ -176,17 +167,17 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle 算法这部分内容非常重要,如果你不知道如何学习算法的话,可以看下我写的: -* [算法学习书籍+资源推荐](https://www.zhihu.com/question/323359308/answer/1545320858) 。 -* [如何刷Leetcode?](https://www.zhihu.com/question/31092580/answer/1534887374) +- [算法学习书籍+资源推荐](https://www.zhihu.com/question/323359308/answer/1545320858) 。 +- [如何刷 Leetcode?](https://www.zhihu.com/question/31092580/answer/1534887374) **常见算法问题总结** : -* [几道常见的字符串算法题总结 ](./docs/cs-basics/algorithms/string-algorithm-problems.md) -* [几道常见的链表算法题总结 ](./docs/cs-basics/algorithms/linkedlist-algorithm-problems.md) -* [剑指 offer 部分编程题](./docs/cs-basics/algorithms/the-sword-refers-to-offer.md) -* [十大经典排序算法](./docs/cs-basics/algorithms/10-classical-sorting-algorithms.md) +- [几道常见的字符串算法题总结 ](./docs/cs-basics/algorithms/string-algorithm-problems.md) +- [几道常见的链表算法题总结 ](./docs/cs-basics/algorithms/linkedlist-algorithm-problems.md) +- [剑指 offer 部分编程题](./docs/cs-basics/algorithms/the-sword-refers-to-offer.md) +- [十大经典排序算法](./docs/cs-basics/algorithms/10-classical-sorting-algorithms.md) -另外,[GeeksforGeeks]( https://www.geeksforgeeks.org/fundamentals-of-algorithms/) 这个网站总结了常见的算法 ,比较全面系统。 +另外,[GeeksforGeeks](https://www.geeksforgeeks.org/fundamentals-of-algorithms/) 这个网站总结了常见的算法 ,比较全面系统。 ## 数据库 @@ -196,9 +187,8 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle - [NoSQL 基础知识总结](./docs/database/nosql.md) - [字符集详解](./docs/database/character-set.md) - SQL : - - [SQL语法基础知识总结](./docs/database/sql/sql-syntax-summary.md) - - [SQL常见面试题总结](./docs/database/sql/sql-questions-01.md) - + - [SQL 语法基础知识总结](./docs/database/sql/sql-syntax-summary.md) + - [SQL 常见面试题总结](./docs/database/sql/sql-questions-01.md) ### MySQL @@ -209,14 +199,14 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle **重要知识点:** -- [MySQL索引详解](./docs/database/mysql/mysql-index.md) -- [MySQL事务隔离级别图文详解)](./docs/database/mysql/transaction-isolation-level.md) -- [MySQL三大日志(binlog、redo log和undo log)详解](./docs/database/mysql/mysql-logs.md) +- [MySQL 索引详解](./docs/database/mysql/mysql-index.md) +- [MySQL 事务隔离级别图文详解)](./docs/database/mysql/transaction-isolation-level.md) +- [MySQL 三大日志(binlog、redo log 和 undo log)详解](./docs/database/mysql/mysql-logs.md) - [InnoDB 存储引擎对 MVCC 的实现](./docs/database/mysql/innodb-implementation-of-mvcc.md) - [SQL 语句在 MySQL 中的执行过程](./docs/database/mysql/how-sql-executed-in-mysql.md) - [MySQL 查询缓存详解](./docs/database/mysql/mysql-query-cache.md) -- [MySQL执行计划分析](./docs/database/mysql/mysql-query-execution-plan.md) -- [MySQL自增主键一定是连续的吗](./docs/database/mysql/mysql-auto-increment-primary-key-continuous.md) +- [MySQL 执行计划分析](./docs/database/mysql/mysql-query-execution-plan.md) +- [MySQL 自增主键一定是连续的吗](./docs/database/mysql/mysql-auto-increment-primary-key-continuous.md) - [MySQL 时间类型数据存储建议](./docs/database/mysql/some-thoughts-on-database-storage-time.md) - [MySQL 隐式转换造成索引失效](./docs/database/mysql/index-invalidation-caused-by-implicit-conversion.md) @@ -229,7 +219,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle **重要知识点:** -- [3种常用的缓存读写策略详解](./docs/database/redis/3-commonly-used-cache-read-and-write-strategies.md) +- [3 种常用的缓存读写策略详解](./docs/database/redis/3-commonly-used-cache-read-and-write-strategies.md) - [Redis 5 种基本数据结构详解](./docs/database/redis/redis-data-structures-01.md) - [Redis 3 种特殊数据结构详解](./docs/database/redis/redis-data-structures-02.md) - [Redis 持久化机制详解](./docs/database/redis/redis-persistence.md) @@ -244,7 +234,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle ## 搜索引擎 -[Elasticsearch常见面试题总结(付费)](./docs/database/elasticsearch/elasticsearch-questions-01.md) +[Elasticsearch 常见面试题总结(付费)](./docs/database/elasticsearch/elasticsearch-questions-01.md) ![JavaGuide 官方公众号](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png) @@ -260,13 +250,13 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle ### Docker -* [Docker 核心概念总结](./docs/tools/docker/docker-intro.md) -* [Docker 实战](./docs/tools/docker/docker-in-action.md) +- [Docker 核心概念总结](./docs/tools/docker/docker-intro.md) +- [Docker 实战](./docs/tools/docker/docker-in-action.md) ### Git -* [Git 核心概念总结](./docs/tools/git/git-intro.md) -* [Github 实用小技巧总结](./docs/tools/git/github-tips.md) +- [Git 核心概念总结](./docs/tools/git/git-intro.md) +- [Github 实用小技巧总结](./docs/tools/git/github-tips.md) ## 系统设计 @@ -277,7 +267,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle - [RestFul API 简明教程](./docs/system-design/basis/RESTfulAPI.md) - [软件工程简明教程简明教程](./docs/system-design/basis/software-engineering.md) -- [代码命名指南](./docs/system-design/basis/naming.md) +- [代码命名指南](./docs/system-design/basis/naming.md) - [代码重构指南](./docs/system-design/basis/refactoring.md) - [单元测试指南](./docs/system-design/basis/unit-test.md) @@ -312,10 +302,9 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle - [SSO 单点登录详解](./docs/system-design/security/sso-intro.md) - [权限系统设计详解](./docs/system-design/security/design-of-authority-system.md) - #### 数据脱敏 -数据脱敏说的就是我们根据特定的规则对敏感信息数据进行变形,比如我们把手机号、身份证号某些位数使用 * 来代替。 +数据脱敏说的就是我们根据特定的规则对敏感信息数据进行变形,比如我们把手机号、身份证号某些位数使用 \* 来代替。 #### 敏感词过滤 @@ -360,8 +349,8 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle ### RPC -* [RPC 基础常见知识点&面试题总结](./docs/distributed-system/rpc/rpc-intro.md) -* [Dubbo 常见知识点&面试题总结](./docs/distributed-system/rpc/dubbo.md) +- [RPC 基础常见知识点&面试题总结](./docs/distributed-system/rpc/rpc-intro.md) +- [Dubbo 常见知识点&面试题总结](./docs/distributed-system/rpc/dubbo.md) ### ZooKeeper @@ -423,20 +412,19 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle ### 灾备设计和异地多活 -**灾备** = 容灾+备份。 +**灾备** = 容灾+备份。 -* **备份** : 将系统所产生的的所有重要数据多备份几份。 -* **容灾** : 在异地建立两个完全相同的系统。当某个地方的系统突然挂掉,整个应用系统可以切换到另一个,这样系统就可以正常提供服务了。 +- **备份** : 将系统所产生的的所有重要数据多备份几份。 +- **容灾** : 在异地建立两个完全相同的系统。当某个地方的系统突然挂掉,整个应用系统可以切换到另一个,这样系统就可以正常提供服务了。 **异地多活** 描述的是将服务部署在异地并且服务同时对外提供服务。和传统的灾备设计的最主要区别在于“多活”,即所有站点都是同时在对外提供服务的。异地多活是为了应对突发状况比如火灾、地震等自然或者人为灾害。 ## Star 趋势 -![](https://api.star-history.com/svg?repos=Snailclimb/JavaGuide&type=Date) +![Stars](https://api.star-history.com/svg?repos=Snailclimb/JavaGuide&type=Date) ## 公众号 如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。 ![JavaGuide 官方公众号](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png) -