Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/PansonPanson/Java-Notes

:books: 计算机科学基础知识、Java开发、后端/服务端、面试相关 :books: computer-science/Java-development/backend/interview
https://github.com/PansonPanson/Java-Notes

backend computer-network computer-science concurrency database distributed java jvm message-queue operating-system

Last synced: about 1 month ago
JSON representation

:books: 计算机科学基础知识、Java开发、后端/服务端、面试相关 :books: computer-science/Java-development/backend/interview

Awesome Lists containing this project

README

        

## 为什么要创建这个仓库?

我在学习编程的时候,经常会搜索一些资料,但无论是Google还是百度,搜索出来的资料往往都不系统,资料的质量也参差不齐。直到现在,我都认为阅读书籍是最系统的学习方式。计算机科学的知识体系太庞大了,如果一些知识学过,却在之后一段时间不再触及,很容易就忘掉,但我们不可能时时刻刻都能随手拿到一本相应的书来作为参考,因此系统地整理一些自己看过的博文合集显得十分必要了。

随着仓库维护时间越来越长,我发现仓库的内容不仅仅对自己有用,对别人也有一定的参考价值。在拿了一些star后,我渐渐加上了一些自己学习心得,主要是关于一些自己读过的书籍。希望对你们有参考价值。

其实我觉得每个人都可以建一个这样的仓库,整理知识的过程也是一个学习的过程。通过反复阅读与复习,慢慢知识就成了自己的一部分。

## 阅读需知:

+ **推荐使用[chrome插件:简悦](http://ksria.com/simpread/)来阅读。**
+ **如果你在中国境内,部分文章可能需要科学上网才能阅读;当然也有可能是链接失效,你可以提交issue,感谢你的贡献。**

+ **仓库维护时间越久,文章目录越来越长,为了优化阅读体验,拆分了大章节,增加了每个大章节的链接。**

| :strawberry: | :cherries: | :chestnut: | :peach: | :green_apple: | :apple: | :grapes: | :lemon: |
| :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: |
| **计算机科学** | **Java** | **Web** | **架构** | **中间件** | **分布式** | **工具** | **未分类** |
| [计算机网络](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md) | [Java基础](https://github.com/PansonPanson/Java-Notes/blob/master/md/Java%E5%9F%BA%E7%A1%80.md) | [框架](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E6%A1%86%E6%9E%B6.md) | [设计模式](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md) | [Zookeeper](https://github.com/PansonPanson/Java-Notes/blob/master/md/Zookeeper.md) | [分布式基础理论](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E5%88%86%E5%B8%83%E5%BC%8F.md) | [IDEA系列教程](https://github.com/judasn/IntelliJ-IDEA-Tutorial) | 视频 [ Git](https://ww.nowcoder.com/courses/2)书籍 [《Pro Git》](http://iissnan.com/progit/) |
| [操作系统](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md) | [Java并发](https://github.com/PansonPanson/Java-Notes/blob/master/md/Java%E5%B9%B6%E5%8F%91.md) | | [系统设计](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1.md) | [消息队列](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97.md) | | [Postman系列教程](https://www.jellythink.com/archives/category/tool-tutorials/postman) | [Docker — 从入门到实践](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) |
| [数据库](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E6%95%B0%E6%8D%AE%E5%BA%93.md) | [JVM](https://github.com/PansonPanson/Java-Notes/blob/master/md/JVM.md) | | [代码规范](https://github.com/alibaba/p3c/blob/master/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Java%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C%EF%BC%88%E8%AF%A6%E5%B0%BD%E7%89%88%EF%BC%89.pdf) | [Web Server](https://github.com/PansonPanson/Java-Notes/blob/master/md/Web%20Server.md) | | | [其他](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E5%85%B6%E4%BB%96.md) |
| [算法](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E7%AE%97%E6%B3%95.md) | [科普系列](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E7%A7%91%E6%99%AE%E7%B3%BB%E5%88%97.md) | | | [搜索引擎](https://github.com/PansonPanson/Java-Notes/blob/master/md/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E.md) | | | |

# 一.计算机网络(Computer Networking)

#### 推荐书籍

+ [《图解HTTP》](https://book.douban.com/subject/25863515/)

图解系列感觉都还不错,对新手很友好。还有一本老厚老厚[《HTTP权威指南》](https://book.douban.com/subject/10746113/),暂时还没有时间看。

+ [《图解TCP/IP》](https://book.douban.com/subject/24737674/)

如果对网络零基础,可以作为阅读以下几本书的铺垫。

+ [《计算机网络:自顶向下方法》](https://book.douban.com/subject/26176870/)

豆瓣上有人提供了本书的相应公开课,不过只看了书,公开课没看,[国立清华大学公开课地址](http://ocw.nthu.edu.tw/ocw/index.php?page=course&cid=13&),[原贴地址](https://book.douban.com/review/7443456/)

+ [《TCP/IP详解 卷1:协议》](https://book.douban.com/subject/1088054/)

计算机网络的权威书籍。了解到作者生平故事的时候,总觉得英年早逝,真的很可惜。

+ [《计算机网络》](https://book.douban.com/subject/26960678/)

这本书其实是我最早看的关于计算机网络的书籍,是国内一些大学的教材,尽管自己也被国内很多教材荼毒过,但这本书还是不错的。

#### 计算机网络总览

+ [计算机网络](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#%E4%BA%94%E8%BF%90%E8%BE%93%E5%B1%82)
+ [HTTP](https://github.com/CyC2018/CS-Notes/blob/master/notes/HTTP.md)

#### TCP、UDP

+ [通俗大白话来理解TCP协议的三次握手和四次分手](https://github.com/jawil/blog/issues/14)
+ [TCP 为什么是三次握手,而不是两次或四次?](https://www.zhihu.com/question/24853633)
+ [理解 TCP 和 UDP](https://jerryc8080.gitbooks.io/understand-tcp-and-udp/)

#### 计算机网络体系结构

+ [OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系](https://www.cnblogs.com/wxd0108/p/7597216.html)

#### HTTP

+ **HTTP 请求方法**
+ [MDN: HTTP 请求方法](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods)
+ [w3school HTTP 方法: GET 对比 POST](http://www.w3school.com.cn/tags/html_ref_httpmethods.asp)
+ **HTTP 状态码**
+ [w3school: HTTP 状态消息](http://www.w3school.com.cn/tags/html_ref_httpmessages.asp)
+ [MDN: HTTP response codes](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/HTTP_response_codes)
+ **HTTP 缓存**
+ [MDN: HTTP 缓存 FAQ](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching_FAQ)
+ [google developers: HTTP 缓存](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching?hl=zh-cn)
+ [MDN: Cache-Control](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers) ==>> [英文](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)
+ **HTTP内容协商**
+ [MDN: 内容协商](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Content_negotiation) ==>> [英文: Content negotiation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation)
+ [谈谈 HTTP/2 的协议协商机制](https://imququ.com/post/protocol-negotiation-in-http2.html)
+ **HTTP内容安全策略( CSP )**
+ [内容安全策略( CSP )](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CSP) ==>> [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP)
+ [阮一峰:Content Security Policy 入门教程](http://www.ruanyifeng.com/blog/2016/09/csp.html)
+ **HTTP的发展:0.9/1.0/1.1/2.0**
+ [MDN: HTTP的发展](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP)
+ [[译] HTTP 的进化 - 0.9、1.0、1.1、Keep-Alive、Upgrade 和 HTTPS](https://juejin.im/post/5aefc2a3f265da0b8c24e0c5)
+ [阮一峰:HTTP 协议入门](http://www.ruanyifeng.com/blog/2016/08/http.html)
+ [HTTP/1.x 的连接管理](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Connection_management_in_HTTP_1.x)
+ **Identifying resources on the Web**
+ [URI、URL、URN 的联系和区别](https://waylau.com/difference-of-uri-url-urn/)
+ [Identifying resources on the Web](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web)
+ **浏览器发送一次网址请求的过程**
+ [小白科普:从输入网址到最后浏览器呈现页面内容,中间发生了什么?](https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665514196&idx=1&sn=ca26d258fcc4a35fc6d9a539b7d71dd7&chksm=80d67c97b7a1f58198b2e6ae436f73c677c0df4c05c2a8a4aad2b9e2d523da57dd5cd3d0a8ee&scene=21#wechat_redirect)
+ [知乎:当你在浏览器中输入 baidu.com 并且按下回车后发生了什么?](https://zhuanlan.zhihu.com/p/28262282)
+ [An attempt to answer the age old interview question "What happens when you type google.com into your browser and press enter?"](https://github.com/alex/what-happens-when)
+ **代理**
+ [图解正向代理、反向代理、透明代理](http://blog.51cto.com/z00w00/1031287)

#### SSH

+ [SSH协议详解](http://airekans.github.io/protocol/2012/06/28/ssh-explained)
+ [SSH 原理与运用(一):远程登录](http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html)
+ [SSH原理与运用(二):远程操作与端口转发](http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html)

#### SSL与TLS

+ [阮一峰:SSL/TLS协议运行机制的概述](http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html)
+ [阮一峰:图解SSL/TLS协议](http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html)
+ [维基百科:传输层安全性协议](https://zh.wikipedia.org/wiki/%E5%82%B3%E8%BC%B8%E5%B1%A4%E5%AE%89%E5%85%A8%E6%80%A7%E5%8D%94%E5%AE%9A)

#### 集线器、交换机和路由器

+ [路由器和交换机的不同之处有哪些?](https://www.zhihu.com/question/20465477)
+ [如何跟小白解释路由器和交换机的区别?](https://www.zhihu.com/question/22007235)
+ [集线器和交换机的区别?](https://www.zhihu.com/question/21782368)

#### 全双工、半双工和单工

+ [串口通讯的单工、半双工和全双工的定义、区别及应用](https://blog.csdn.net/hai673580326/article/details/37819611)

#### CDN

+ [知乎:CDN是什么?使用CDN有什么优势?](https://www.zhihu.com/question/36514327?rf=37353035)

#### Cookie、Session、Token

+ [知乎:Cookie和Session有什么区别?](https://www.zhihu.com/question/19786827)
+ [Cookie、Session、Token](https://www.jianshu.com/p/8ef0c5a551d3)

#### 加解密算法

+ [AES算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191726&idx=1&sn=c7856fe211471d01e9afdfea4a7f6b87&chksm=8c990cf4bbee85e28bb2ea63cb1f767dee4702ca8b9ef23db3467558a4b27ff5b6c1893c8771&scene=21#wechat_redirect)
+ [SHA系列算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191642&idx=1&sn=47c6340a6664af2f62e6c580528ea6f6&chksm=8c990f00bbee861698daa51b0622e581b3279c0759a16330fe538de745cb6abed8288b0bd778&scene=21#wechat_redirect)
+ [MD5算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191503&idx=1&sn=b18bd0458bf884bcb5d01f1cf2ca8301&chksm=8c990f95bbee8683fcfa9e972fd887cb1e50328ab4d8bd1f6a68ea90de6c67f46e50847e36fb&scene=21#wechat_redirect)
+ [如何破解MD5算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191598&idx=1&sn=13ef6b99b8a9a25f18b839df13cd6e31&chksm=8c990f74bbee866249af65e56a73f74b90a85b8497b9eea097f813a0b398a44fe0b8320967cd&scene=21#wechat_redirect)
+ [Base64算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191459&idx=1&sn=6e7d82dabe9c4a26b55f86f502edac03&chksm=8c990ff9bbee86ef7d6eee8a92430ff529b57e2f8720d439b7a4fb83b9ba75cd91395509a239&scene=21#wechat_redirect)

# 二.操作系统(Operating System)

## 操作系统基础知识(基于CSAPP)

### 基础知识

+ [【不周山之读薄 CSAPP】零 系列概览](https://wdxtub.com/2016/04/16/thin-csapp-0/)
+ [壹 数据表示 - 不同的数据是如何存储与表示的](http://wdxtub.com/2016/04/16/thin-csapp-1/)
+ [贰 机器指令与程序优化 - 控制流、过程调用、跳转](http://wdxtub.com/2016/04/16/thin-csapp-2/)
+ [叁 内存与缓存 - 内存层级与缓存机制](http://wdxtub.com/2016/04/16/thin-csapp-3/)
+ [肆 链接 - 不同的代码如何协同](http://wdxtub.com/2016/04/16/thin-csapp-4/)
+ [伍 异常控制流 - 不同进程间的切换与沟通](http://wdxtub.com/2016/04/16/thin-csapp-5/)
+ [陆 系统输入输出 - 怎么把不同的内容发送到不同的地方](http://wdxtub.com/2016/04/16/thin-csapp-6/)
+ [柒 虚拟内存与动态内存分配 - 现代计算机中内存的奥秘](http://wdxtub.com/2016/04/16/thin-csapp-7/)
+ [捌 网络编程 - 从最原始套接字彻底理解网络编程](http://wdxtub.com/2016/04/16/thin-csapp-8/)
+ [玖 并行与同步 - 协同工作中最重要的两个问题](http://wdxtub.com/2016/04/16/thin-csapp-9/)

### 实验部分

+ [实验概览](http://wdxtub.com/2016/04/16/thick-csapp-lab-0/)
+ [I Data Lab - 位操作,数据表示](http://wdxtub.com/2016/04/16/thick-csapp-lab-1/)
+ [II Bomb Lab - 汇编,栈帧与 gdb](http://wdxtub.com/2016/04/16/thick-csapp-lab-2/)
+ [III Attack Lab - 漏洞是如何被攻击的](http://wdxtub.com/2016/04/16/thick-csapp-lab-3/)
+ [IV Cache Lab - 实现一个缓存系统来加速计算](http://wdxtub.com/2016/04/16/thick-csapp-lab-4/)
+ [V Shell Lab - 实现一个 shell](http://wdxtub.com/2016/04/16/thick-csapp-lab-5/)
+ [VI Malloc Lab - 实现一个动态内存分配](http://wdxtub.com/2016/04/16/thick-csapp-lab-6/)
+ [VII Proxy Lab - 实现一个多线程带缓存的代理服务器](http://wdxtub.com/2016/04/16/thick-csapp-lab-7/)

## Linux

#### Linux基础

+ [《The Linux Command Line》](https://book.douban.com/subject/6806862/)
+ [对应的中文在线版](http://billie66.github.io/TLCL/book/)

+ [实验楼:Linux基础](https://www.shiyanlou.com/courses/1)
+ [Linux命令实例练习](https://www.shiyanlou.com/courses/68)
+ [《鸟哥的Linux私房菜在线阅读》](http://linux.vbird.org/linux_basic/)
+ [Linux 命令大全](http://www.runoob.com/linux/linux-command-manual.html)

#### Linux shell

+ [实验楼:高级 bash 脚本编程指南](https://www.shiyanlou.com/courses/944)
+ [正则表达式基础](https://www.shiyanlou.com/courses/90)
+ [《Linux Shell脚本攻略》](https://book.douban.com/subject/6889456/)

#### Vim

+ [Vim编辑器基本使用](https://www.shiyanlou.com/courses/2)
+ [陈皓:简明 VIM 练级攻略](https://coolshell.cn/articles/5426.html)

#### Linux内核

# 三.数据库(Database)

## 数据库理论

#### 事务

+ [『浅入深出』MySQL 中事务的实现](https://draveness.me/mysql-transaction)
+ [彻底理解数据库事务](http://www.hollischuang.com/archives/898)
+ [深入分析事务的隔离级别](http://www.hollischuang.com/archives/943)
+ [知乎:数据库事务原子性、一致性是怎样实现的?](https://www.zhihu.com/question/30272728)
+ [知乎:乐观锁和 MVCC 的区别?](https://www.zhihu.com/question/27876575)
+ [浅谈数据库并发控制 - 锁和 MVCC](https://draveness.me/database-concurrency-control)
+ [InnoDB存储引擎MVCC实现原理](https://liuzhengyang.github.io/2017/04/18/innodb-mvcc/)

#### 范式

+ [解释一下关系数据库的第一第二第三范式?](https://www.zhihu.com/question/24696366/answer/29189700)

## MySQL

+ [MySQL](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/MySQL.md)

#### MySQL索引

+ [MYSQL-索引](https://segmentfault.com/a/1190000003072424)
+ [MySQL索引背后的数据结构及算法原理](http://blog.codinglabs.org/articles/theory-of-mysql-index.html)

#### MySQL优化

+ [MySQL 对于千万级的大表要怎么优化?](https://www.zhihu.com/question/19719997)
+ [MYSQL性能优化的最佳20+条经验](https://coolshell.cn/articles/1846.html) ===> [英文原文:Top 20+ MySQL Best Practices](https://code.tutsplus.com/tutorials/top-20-mysql-best-practices--net-7855)
+ [MySQL 性能优化神器 Explain 使用分析](https://segmentfault.com/a/1190000008131735)
+ [视频:性能优化之MySQL优化](https://www.imooc.com/learn/194)

#### MySQL的锁

+ [对mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解](https://blog.csdn.net/puhaiyang/article/details/72284702)
+ [数据库的锁机制](http://www.hollischuang.com/archives/909)
+ [深入理解乐观锁与悲观锁](http://www.hollischuang.com/archives/934)

## Redis

关于Redis的学习,命令与基础知识部分,Redis官网其实蛮详细了。

+ [英文官网](https://redis.io/)

+ [Redis中文网](http://www.redis.cn/)

#### 书籍推荐:

+ [《Redis开发与运维》](https://book.douban.com/subject/26971561/)

这本书主要是关于基础知识的讲解,比较全面,其实还有一本[《Redis实战》](https://book.douban.com/subject/26612779/),我翻了翻,没怎么细看。

+ [《Redis设计与实现》](https://book.douban.com/subject/25900156/)

Redis底层是用C语言写的,这本书剖析了Redis的内部源码实现,配图也很多,有很多经典巧妙的数据结构,我觉得是对算法学习很好的补充。

+ [《Redis 深度历险:核心原理与应用实践》](https://book.douban.com/subject/30386804/)

这本书有对应的小册,在掘金官网上可以购买,我只看了小册,不过书和小册应该基本一致。

#### 基础知识

+ [字符串(strings)](http://www.redis.cn/topics/data-types-intro.html#strings)
+ [散列(hashes)](http://www.redis.cn/topics/data-types-intro.html#hashes)
+ [列表(lists)](http://www.redis.cn/topics/data-types-intro.html#lists)
+ [集合(sets)](http://www.redis.cn/topics/data-types-intro.html#sets)
+ [有序集合(sorted sets)](http://www.redis.cn/topics/data-types-intro.html#sorted-sets)
+ [bitmaps](http://www.redis.cn/topics/data-types-intro.html#bitmaps)
+ [hyperloglogs](http://www.redis.cn/topics/data-types-intro.html#hyperloglogs)
+ [地理空间(geospatial)](http://www.redis.cn/commands/geoadd.html)
+ [复制(replication)](http://www.redis.cn/topics/replication.html)
+ [LUA脚本(Lua scripting)](http://www.redis.cn/commands/eval.html)
+ [LRU驱动事件(LRU eviction)](http://www.redis.cn/topics/lru-cache.html)
+ [事务(transactions)](http://www.redis.cn/topics/transactions.html)
+ [磁盘持久化(persistence)](http://www.redis.cn/topics/persistence.html)
+ [Redis哨兵(Sentinel)](http://www.redis.cn/topics/sentinel.html)
+ [分区(Cluster)](http://www.redis.cn/topics/cluster-tutorial.html)

#### 底层源码解析

+ [合集](http://wiki.jikexueyuan.com/project/redis/)

+ [Redis源码解析](https://redissrc.readthedocs.io/en/latest/index.html)

#### 分布式锁

+ [点我达技术:Redis分布式锁进化史](http://tech.dianwoda.com/2018/04/11/redisfen-bu-shi-suo-jin-hua-shi/)

#### 缓存

+ [美团技术团队:缓存那些事](https://tech.meituan.com/cache_about.html)

# 四.算法(Algorithm)

#### 排序算法

+ [常见排序算法及对应的时间复杂度和空间复杂度](http://www.ganecheng.tech/blog/52652705.html)
+ [常用的八种排序算法Java代码实现](https://www.jianshu.com/p/5e171281a387)
+ [图解排序算法(一)之3种简单排序(选择,冒泡,直接插入)](https://www.cnblogs.com/chengxiao/p/6103002.html)
+ [图解排序算法(二)之希尔排序](http://www.cnblogs.com/chengxiao/p/6104371.html)
+ [图解排序算法(三)之堆排序](http://www.cnblogs.com/chengxiao/p/6129630.html)
+ [图解排序算法(四)之归并排序](https://www.cnblogs.com/chengxiao/p/6194356.html)
+ [图解排序算法(五)之快速排序——三数取中法](http://www.cnblogs.com/chengxiao/p/6262208.html)

#### 递归与尾递归

+ [知乎:什么是尾递归?](https://www.zhihu.com/question/20761771)

#### 字典树(Trie)

+ [从Trie树(字典树)谈到后缀树](https://blog.csdn.net/v_july_v/article/details/6897097)
+ [Trie 三兄弟——标准 Trie、压缩 Trie、后缀 Trie](https://www.cnblogs.com/youxin/p/3301411.html)

#### 红黑树

+ [红黑树](https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/03.01.md)
+ [美团技术团队:红黑树深入剖析及Java实现](https://tech.meituan.com/redblack_tree.html)

#### KMP

+ [为什么java String.contains 没有使用类似KMP字符串匹配算法进行优化?](https://www.zhihu.com/question/27852656)

#### 布隆过滤器(Bloom Filter)

+ [吴军:数学之美系列二十一 - 布隆过滤器(Bloom Filter)](https://china.googleblog.com/2007/07/bloom-filter_7469.html)
+ [使用BloomFilter布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重](https://blog.csdn.net/tianyaleixiaowu/article/details/74721877)
+ [布隆过滤器(Bloom Filter)的原理和实现](https://www.cnblogs.com/cpselvis/p/6265825.html)

#### 一致性哈希

+ [一致性哈希算法的理解与实践](https://yikun.github.io/2016/06/09/%E4%B8%80%E8%87%B4%E6%80%A7%E5%93%88%E5%B8%8C%E7%AE%97%E6%B3%95%E7%9A%84%E7%90%86%E8%A7%A3%E4%B8%8E%E5%AE%9E%E8%B7%B5/)
+ [一致性HASH算法详解](https://www.jianshu.com/p/e8fb89bb3a61)

#### JDK里的排序算法

+ [Java提供的排序算法是怎么实现的?](https://blog.csdn.net/xlgen157387/article/details/79863301)
+ [排序算法在jdk源码中的应用](https://blog.csdn.net/java_student09/article/details/52235278)
+ [java.util.Arrays的排序研究](http://hxraid.iteye.com/blog/665095)

#### Huffman 编码

+ [霍夫曼编码](https://zh.wikipedia.org/wiki/%E9%9C%8D%E5%A4%AB%E6%9B%BC%E7%BC%96%E7%A0%81)
+ [HUFFMAN 编码压缩算法](https://coolshell.cn/articles/7459.html)

#### 并查集

+ [并查集(Union-Find)算法介绍](https://blog.csdn.net/dm_vincent/article/details/7655764)
+ [维基百科:并查集](https://zh.wikipedia.org/wiki/%E5%B9%B6%E6%9F%A5%E9%9B%86)

#### 动态规划

+ [知乎:什么是动态规划?动态规划的意义是什么?](https://www.zhihu.com/question/23995189)
+ [漫画:什么是动态规划?](https://juejin.im/post/5a29d52cf265da43333e4da7)

#### 贪心

+

# 五.Java基础(Basic)

+ [Java基础](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%9F%BA%E7%A1%80.md)
+ [美团技术团队:深入解析String的intern()方法](https://tech.meituan.com/in_depth_understanding_string_intern.html)
+ [Java本地方法](https://blog.csdn.net/wi__wi/article/details/51085907)
+ [Java中的Switch对整型、字符型、字符串型的具体实现细节](http://www.hollischuang.com/archives/61)

#### Java枚举

+ [深入理解Java枚举类型(enum)](https://blog.csdn.net/javazejian/article/details/71333103)

#### Java异常

+ [Java 异常处理](http://www.runoob.com/java/java-exceptions.html)
+ [throw和throws有什么区别?](https://www.nowcoder.com/questionTerminal/b769424fb8bf49d9bff97353c75d6f06)
+ [Java 中的异常和处理详解](http://www.importnew.com/26613.html)
+ [知乎:如何优雅地处理异常?](https://www.zhihu.com/question/28254987)

#### 序列化与反序列化

+ [美团技术团队:序列化和反序列化](https://tech.meituan.com/serialization_vs_deserialization.html)

#### 反射

+ [知乎:学习java应该如何理解反射?](https://www.zhihu.com/question/24304289)
+ [深入解析Java反射(1) - 基础](https://www.sczyh30.com/posts/Java/java-reflection-1/#)
+ [深入解析Java反射(2) - invoke方法](https://www.sczyh30.com/posts/Java/java-reflection-2/)
+ [并发编程网:Java Reflection教程 ](http://ifeve.com/java-reflection/)
+ [反射——Java高级开发必须懂的](https://www.imooc.com/learn/199)

#### 注解

+ [全面解析Java注解](http://www.imooc.com/learn/456)
+ [并发编程网:Java注解教程及自定义注解](http://ifeve.com/java-annotations/)

#### String、StringBuilder和StringBuffer

+ [在java中String类为什么要设计成final? - 知乎](https://www.zhihu.com/question/31345592)
+ [Java StringBuilder和StringBuffer源码分析](https://segmentfault.com/a/1190000004261063)
+ Stack Overflow: [String, StringBuffer, and StringBuilder](https://stackoverflow.com/questions/2971315/string-stringbuffer-and-stringbuilder)

#### hashCode()和equals()

+ [Java hashCode() 和 equals()的若干问题解答](https://www.cnblogs.com/skywang12345/p/3324958.html)
+ [Java提高篇——equals()与hashCode()方法详解](https://www.cnblogs.com/Qian123/p/5703507.html)
+ [面试官爱问的equals与hashCode](https://juejin.im/post/5a4379d4f265da432003874c)

#### Java IO

+ [Java IO教程](http://ifeve.com/java-io/)
+ [文件传输基础——Java IO流](https://www.imooc.com/learn/123)
+ [Java NIO 系列教程](http://ifeve.com/java-nio-all/)
+ [以Java的视角来聊聊BIO、NIO与AIO的区别?](https://juejin.im/entry/598da7d16fb9a03c42431ed3)

#### Java容器 ==>> 推荐阅读[《分布式Java应用 基础与实践》](https://book.douban.com/subject/4848587/)第四章

+ [Java集合学习指南](http://wiki.jikexueyuan.com/project/java-collection/)

+ [java 集合类知识汇总](https://mp.weixin.qq.com/s/2P-wEvmig-M2Ehde1REGjQ)

+ [Java 容器](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%AE%B9%E5%99%A8.md#arraylist)

+ [ArrayList vs. LinkedList vs. Vector](http://www.importnew.com/8782.html)

+ [ArrayList、LinkedList、Vector、HashSet、Treeset、HashMap、TreeMap的区别和适用场景](http://bs-yg.iteye.com/blog/2253605)

+ [Java Collections Framework - ArrayList](https://www.jianshu.com/p/4b7aa8a022ba)

+ **HashMap与ConcurrentHashMap**

+ [Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析](https://javadoop.com/post/hashmap)

+ [占小狼:深入浅出ConcurrentHashMap1.8](https://www.jianshu.com/p/c0642afe03e0)
+ [占小狼:谈谈ConcurrentHashMap1.7和1.8的不同实现](https://www.jianshu.com/p/e694f1e868ec)
+ [占小狼:ConcurrentHashMap的红黑树实现分析](https://www.jianshu.com/p/23b84ba9a498)
+ [占小狼:老生常谈,HashMap的死循环](https://www.jianshu.com/p/1e9cf0ac07f4)
+ [HashMap与ConcurrentHashMap在JDK1.7和JDK1.8中的实现](https://crossoverjie.top/2018/07/23/java-senior/ConcurrentHashMap/)
+ [美团技术团队:Java 8系列之重新认识HashMap](https://tech.meituan.com/java_hashmap.html)

+ **优先级队列**
+ [PriorityQueue](https://github.com/CarpenterLee/JCFInternals/blob/master/markdown/8-PriorityQueue.md)
+ [优先级队列是一种什么样的数据结构](http://www.importnew.com/6510.html)
+ [堆排序和 PriorityQueue 源码解析](https://zhuanlan.zhihu.com/p/25843530)
+ [基于堆实现的优先级队列:PriorityQueue 解决 Top K 问题](https://my.oschina.net/leejun2005/blog/135085)
+ [jdk源码分析PriorityQueue](http://zswlib.iteye.com/blog/2334463)]

#### Java 8 ==>> 推荐阅读《Java 8实战》与《Java 8函数式编程》

+ [What's New in JDK 8](http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html)
+ [IBM: Java 8 新特性概述](https://www.ibm.com/developerworks/cn/java/j-lo-jdk8newfeature/index.html)
+ [Java 8 特性 – 终极手册](http://www.importnew.com/19345.html)
+ [IBM:Java 8 中的 Streams API 详解](https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/)

#### 值得思考的问题:

+ [Java 8接口上的default method设计目的是什么?](
https://www.zhihu.com/question/41166418/answer/139494009)

# 六.Java并发(Concurrency)

#### 推荐书籍:

+ [《Java并发编程的艺术》](https://book.douban.com/subject/26591326/)

z这本书比《Java并发编程实战》更适合入门一些。作者还创办了并发编程网,里面有很多值得读的文章。

+ [《Java并发编程实战》](https://book.douban.com/subject/10484692/)

jdk并发包作者写的书,书很好,但翻译为人诟病很久。

+ [《实战Java高并发程序设计》](https://book.douban.com/subject/26663605/)

在图书馆瞎逛的时候看到的一本书,翻了翻,出乎意料地不错,涉及到一些Java8函数式编程的知识。

#### 并发合集

+ [深入理解java内存模型系列文章](http://ifeve.com/java-memory-model-0/)
+ [深入浅出 Java Concurrency](http://www.blogjava.net/xylz/archive/2010/07/08/325587.html)
+ [死磕Java并发](https://www.jianshu.com/nb/12860760)
+ [Java 并发](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%B9%B6%E5%8F%91.md)
+ [Java 并发知识合集](https://github.com/CL0610/Java-concurrency)

#### Java并发工具类之LongAdder

+ [Java并发工具类之LongAdder原理总结](https://github.com/aCoder2013/blog/issues/22)
+ [Java8 Striped64 和 LongAdder](http://ifeve.com/java8-striped64-and-longadder/)

#### 线程池

+ [深入分析java线程池的实现原理](https://www.jianshu.com/p/87bff5cc8d8c)
+ [线程池的工作原理与源码解读](https://www.cnblogs.com/qingquanzi/p/8146638.html)
+ [Java并发编程:线程池的使用](https://www.cnblogs.com/dolphin0520/p/3932921.html)
+ [聊聊并发(三)——JAVA线程池的分析和使用](http://www.infoq.com/cn/articles/java-threadPool)

#### 阻塞队列

+ [聊聊并发(七)——Java中的阻塞队列](http://www.infoq.com/cn/articles/java-blocking-queue?utm_source=infoq&utm_campaign=user_page&utm_medium=link)
+ [【死磕Java并发】-----J.U.C之阻塞队列:BlockingQueue总结](https://www.jianshu.com/p/4af8ab00c587)
+ [【死磕Java并发】-----J.U.C之阻塞队列:ArrayBlockingQueue](https://www.jianshu.com/p/0a0b58934401)
+ [【死磕Java并发】-----J.U.C之阻塞队列:LinkedBlockingDeque](https://www.jianshu.com/p/f1b2c053c103)
+ [【死磕Java并发】-----J.U.C之阻塞队列:PriorityBlockingQueue](https://www.jianshu.com/p/43954715aa28)
+ [【死磕Java并发】-----J.U.C之阻塞队列:SynchronousQueue](https://www.jianshu.com/p/9d2c706e45b7)
+ [【死磕Java并发】-----J.U.C之阻塞队列:LinkedTransferQueue](https://www.jianshu.com/p/bd708cb3ea91)

#### synchronized和lock

+ [【死磕Java并发】-----深入分析synchronized的实现原理](https://www.jianshu.com/p/fe49b156b1a6)
+ [深入浅出synchronized](https://www.jianshu.com/p/19f861ab749e)
+ [Lock与synchronized 的区别](http://houlinyan.iteye.com/blog/1112535)
+ [并发编程的锁机制:synchronized和lock](https://juejin.im/post/5a43ad786fb9a0450909cb5f)

#### CAS

+ [面试必问的CAS,要多了解](https://www.jianshu.com/p/24ffe531e9ee)
+ [乐观锁的一种实现方式——CAS](http://www.hollischuang.com/archives/1537)
+ [【死磕Java并发】-----J.U.C之深入分析CAS](https://www.jianshu.com/p/61c90bd79d66)

#### ThreadLocal

+ [深入浅出ThreadLocal](https://www.jianshu.com/p/33c5579ef44f)
+ [Java面试必问,ThreadLocal终极篇](https://www.jianshu.com/p/377bb840802f)
+ [【死磕Java并发】—–深入分析ThreadLocal](http://cmsblogs.com/?p=2442)

#### Java中的锁

+ [Java中的锁](http://www.importnew.com/19472.html)
+ [【死磕Java并发】-----J.U.C之重入锁:ReentrantLock](https://www.jianshu.com/p/508412a6ffdc)
+ [【死磕Java并发】-----J.U.C之读写锁:ReentrantReadWriteLock](https://www.jianshu.com/p/d47fe1ec1bb3)

#### Java秒杀

+ [设计一个秒杀系统](https://github.com/crossoverJie/JCSprout/blob/master/MD/Spike.md)
+ [秒杀架构实践](https://crossoverjie.top/2018/05/07/ssm/SSM18-seconds-kill/)
+ [限流算法](https://github.com/crossoverJie/JCSprout/blob/master/MD/Limiting.md)
+ [知乎:秒杀系统设计](https://www.zhihu.com/question/54895548)

# 七.Java虚拟机(JVM)

#### 推荐书籍

+ [《深入理解Java虚拟机》](https://book.douban.com/subject/24722612/)

学过JVM的应该都看过这本书,比较详细,但这本书第二版是2013年出的,HotSpot在具体实现上有了一些变化,比如说内存结构Perm区的继任者Metaspace,以及一些新的垃圾收集器也出现了,这部分内容需要再自己选择性地去补充学习。

+ [《实战Java虚拟机》](https://book.douban.com/subject/26354292/)

相比较上一本,这一本书感觉更基础,两者可以相互补充。

#### 合集

+ [JVM一览](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E8%99%9A%E6%8B%9F%E6%9C%BA.md)
+ [Jvm知识汇总篇](https://zhuanlan.zhihu.com/p/34426768)

#### JVM内存结构

+ [JAVA8:永久代(PermGen)和元空间(Metaspace)](https://www.cnblogs.com/paddix/p/5309550.html)

+ [JVM内存结构 VS Java内存模型 VS Java对象模型](https://blog.csdn.net/hollis_chuang/article/details/80839410)
+ [JVM内存的那些事](https://www.jianshu.com/p/eaef248b5a2c)

#### 垃圾收集(GC)

+ [深入理解 java 垃圾回收机制](https://www.cnblogs.com/sunniest/p/4575144.html)
+ [不同的垃圾回收器的比较](http://www.importnew.com/15869.html)
+ [了解CMS(Concurrent Mark-Sweep)垃圾回收器](http://www.importnew.com/2782.html)
+ [并发编程网:深入理解G1垃圾收集器](http://ifeve.com/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3g1%E5%9E%83%E5%9C%BE%E6%94%B6%E9%9B%86%E5%99%A8/)
+ [占小狼:G1垃圾收集器介绍](https://www.jianshu.com/p/0f1f5adffdc1)
+ [占小狼:Java GC的那些事(1)](https://www.jianshu.com/p/6d1cbe38a54b)
+ [占小狼:Java GC的那些事(2)](https://www.jianshu.com/p/94989b278114)
+ [Java GC系列(1):Java垃圾回收简介](http://www.importnew.com/13504.html)
+ [Java GC系列(2):Java垃圾回收是如何工作的?](http://www.importnew.com/13493.html)
+ [Java GC系列(3):垃圾回收器种类](http://www.importnew.com/13827.html)
+ [Java GC系列(4):垃圾回收监视和分析](http://www.importnew.com/13838.html)
+ [知乎:怎么在面试时回答Java垃圾回收机制(GC)相关问题?](https://www.zhihu.com/question/35164211)
+ [美团技术团队:Java Hotspot G1 GC的一些关键技术](https://tech.meituan.com/g1.html)

#### 类加载

+ [深入探讨 Java 类加载器](https://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html)
+ [深入分析Java ClassLoader原理](http://www.importnew.com/15362.html)

#### 性能调优

+ [并发编程网:JVM实用参数系列 ](http://ifeve.com/useful-jvm-flags/)
+ [美团技术团队:从实际案例聊聊Java应用的GC优化](https://tech.meituan.com/jvm_optimize.html)

# 八.架构与设计

## 设计模式

+ [设计模式合集](http://wiki.jikexueyuan.com/project/java-design-pattern-principle/)

## 系统设计

+ [系统设计面试之前需要知道的八件事](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd1.html)
+ 设计Twitter
+ [如何设计 Twitter(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd2.html)
+ [如何设计 Twitter(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd3.html)
+ [创建照片分享应用](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd4.html)
+ [创建短网址系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd5.html)
+ [如何设计 Google Docs](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd6.html)
+ 设计新闻推送系统
+ [设计新闻推送系统(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd7.html)
+ [设计新闻推送系统(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd8.html)
+ [设计 Facebook 聊天功能](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd9.html)
+ [如何为 Twitter 设计趋势算法](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd10.html)
+ [设计缓存系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd11.html)
+ [设计推荐系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd12.html)
+ [随机 ID 生成器](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd13.html)
+ 设计键值存储
+ [设计键值存储(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd14.html)
+ [设计键值存储(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd15.html)
+ [构建网页爬虫](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd16.html)
+ 设计垃圾回收系统
+ [设计垃圾回收系统(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd17.html)
+ [设计垃圾回收系统(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd18.html)
+ 设计电商网站
+ [设计电商网站(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd19.html)
+ [设计电商网站(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd20.html)
+ [设计点击计数器](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd21.html)
+ 设计 Youtube
+ [设计 Youtube(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd22.html)
+ [设计 Youtube(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd23.html)

# 九.框架(Framework)

## Spring

+ [Spring 框架的设计理念与设计模式分析](https://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/index.html)

#### IoC

+ [知乎:Spring IOC原理总结](https://zhuanlan.zhihu.com/p/29344811)
+ [知乎:Spring IoC有什么好处呢?](https://www.zhihu.com/question/23277575)
+ BeanFactory、ApplicationContext以及WebApplicationContext
+ BeanFactory和ApplicationContext中各自Bean的生命周期
+ Bean的注入方式和作用域

#### AOP

+ [Spring AOP 实现原理与 CGLIB 应用](https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/index.html)
+ [探秘Spring AOP](https://www.imooc.com/learn/869)
+ **动态代理**
+ [JDK动态代理代理与Cglib代理原理探究 ](http://ifeve.com/jdk%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86%E4%BB%A3%E7%90%86%E4%B8%8Ecglib%E4%BB%A3%E7%90%86%E5%8E%9F%E7%90%86%E6%8E%A2%E7%A9%B6/)
+ [Java Proxy 和 CGLIB 动态代理原理](http://www.importnew.com/27772.html)

#### 常用知识点

+ [Spring常见面试题](https://www.w3cschool.cn/fisug/)
+ [知乎:@Autowired和@Resource的区别是什么?](https://www.zhihu.com/question/39356740)
+ StringRedisTemplate 类
+ [Spring Doc: Class StringRedisTemplate](https://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/core/StringRedisTemplate.html)
+ [如何使用RedisTemplate访问Redis数据结构](https://www.jianshu.com/p/7bf5dc61ca06)
+ **RestTemplate类**
+ [Spring Doc: Class RestTemplate](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html)
+ [A Guide to the RestTemplate | Baeldung](https://www.baeldung.com/rest-template)
+ [Spring RestTemplate 中几种常见的请求方式](https://blog.csdn.net/u012702547/article/details/77917939)
+ **EntityManager**
+ [EntityManager相关核心概念](https://blog.csdn.net/dm_vincent/article/details/52615532)
+ [EntityManager相关](https://blog.csdn.net/u010837612/article/details/47666131)

#### Spring源码

+ [死磕Spring](http://cmsblogs.com/?cat=206)
+ [Spring源码阅读](https://github.com/seaswalker/Spring)
+ [Spring 实现原理与源码解析系统](http://www.iocoder.cn/Spring/good-collection/)]

## Spring Boot

+ [@SpringBootApplication(源码分析与启动流程)](http://tengj.top/2017/03/09/springboot3/) ==>> 推荐阅读《Spring Boot揭秘》第三章

+ **参考视频教程**
+ [SpringBoot开发常用技术整合](https://www.imooc.com/learn/956)
+ [Spring Boot聚合工程](https://www.imooc.com/learn/933)
+ [Spring Boot热部署](https://www.imooc.com/learn/915)
+ **参考文档以及开原作品索引**
+ [Spring Boot 中文索引](http://springboot.fun/)

#### Thymeleaf

+ [Thymeleaf-Reference-Guide中文翻译](https://github.com/jack80342/Thymeleaf-Reference-Guide)

## Spring MVC

+ [SpringMVC深度探险系列](http://www.iteye.com/blogs/subjects/springmvc-explore)

#### **Servlet**

+ [知乎:servlet的本质是什么,它是如何工作的?](https://www.zhihu.com/question/21416727)
+ [许令波:Servlet 工作原理解析](https://www.ibm.com/developerworks/cn/java/j-lo-servlet/index.html)
+ [Servlet生命周期与工作原理](https://www.cnblogs.com/cuiliang/archive/2011/10/21/2220671.html)

#### **redirect和forward**

+ [知乎:web开发过程中redirect和forward有什么区别?](https://www.zhihu.com/question/38013677)
+ [请求转发(Forward)和重定向(Redirect)的区别](https://www.cnblogs.com/Qian123/p/5345527.html)

#### Spring MVC常用注解

+ [springmvc常用注解标签详解](https://www.cnblogs.com/leskang/p/5445698.html)

+ [Spring MVC 的常用注解](https://blog.csdn.net/qian_ch/article/details/73826663)

#### 面试相关

+ [SpringMVC面试题](https://www.w3cschool.cn/qgutf/)

## MyBatis

+ [MyBatis Reference Documentation](http://www.mybatis.org/mybatis-3/index.html) ===> [中文文档](http://www.mybatis.org/mybatis-3/zh/index.html)
+ [美团技术团队:聊聊MyBatis缓存机制](https://tech.meituan.com/mybatis_cache.html)
+ [动态SQL](http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html)
+ [MyBatis常见面试题](https://www.w3cschool.cn/kzsow/)
+ MyBatis中的#与$的区别

## Spring Cloud

+ **参考文档以及开源作品索引**
+ [Spring Cloud 中文索引](http://springcloud.fun/)

# 十.中间件

## 1.Web Server

### Tomcat

### Nginx

## 2.消息队列

### RabbitMQ

### RocketMQ

### kafka

### ActiveMQ

# 十一.分布式

## 1.分布式基础理论

+ [美团技术团队:分布式系统互斥性与幂等性问题的分析与解决](https://tech.meituan.com/distributed_system_mutually_exclusive_idempotence_cerberus_gtis.html)
+ [分布式基础理论](https://github.com/CyC2018/CS-Notes/blob/master/notes/%E5%88%86%E5%B8%83%E5%BC%8F.md)
+ **CAP理论:**
+ 论文:[Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web](https://users.ece.cmu.edu/~adrian/731-sp04/readings/GL-cap.pdf)
+ [CAP 定理的含义](http://www.ruanyifeng.com/blog/2018/07/cap.html)
+ [分布式理论(一) - CAP定理](https://juejin.im/post/5b26634b6fb9a00e765e75d1)
+ **BASE理论:**
+ [分布式理论(二) - BASE理论](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2663fcf265da59a401e6f8)
+ **2PC协议:**
+ [分布式理论(三) - 2PC协议](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664446fb9a00e4a53136e)
+ **3PC协议:**
+ [分布式理论(四) - 3PC协议](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b26648e5188257494641b9f)
+ **一致性算法Paxos:**
+ [分布式理论(五) - 一致性算法Paxos](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664bd51882574874d8a76)
+ **一致性协议Raft:**
+ [分布式理论(六) - 一致性协议Raft](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664e2f265da59584d8c90)
+ **分布式事务**
+ [事务相关基础知识](http://www.hollischuang.com/archives/tag/%E4%BA%8B%E5%8A%A1)
+ [分布式事务](http://tech.dianwoda.com/2018/09/27/fen-bu-shi-shi-wu/)
+ [IBM developerWorks : JTA 深度历险 - 原理与实现](https://www.ibm.com/developerworks/cn/java/j-lo-jta/index.html)
+ **happens-before**
+ 论文:[Time, Clocks, and the Ordering of Events in a Distributed System](https://lamport.azurewebsites.net/pubs/time-clocks.pdf)

# 十二.搜索引擎

## Elasticsearch

## Apache Solr

# 十二.其他

## IDEA

+ [IntelliJ-IDEA-Tutorial](https://github.com/judasn/IntelliJ-IDEA-Tutorial)
+ [IntelliJ IDEA神器使用技巧](https://www.imooc.com/learn/924)

## Postman

+ [Postman系列教程](https://www.jellythink.com/archives/category/tool-tutorials/postman)

## 压力测试

+ Apache bench
+ JMeter

## Swagger

## Git

+ [使用git提交到github,每次都要输入用户名和密码的解决方法](https://www.cnblogs.com/sky6862/p/7992736.html)
+ [GitHub & Git](https://www.nowcoder.com/courses/2)
+ [《Pro Git》](http://iissnan.com/progit/)

## 任务调度
+ [Java定时任务调度工具详解之Timer篇](https://www.imooc.com/learn/841)
+ [Java定时任务调度工具详解之Quartz篇](https://www.imooc.com/learn/846)
+ [Quartz官方文档中文版](https://www.w3cschool.cn/quartz_doc/)
+ [Quartz Documentation](http://www.quartz-scheduler.org/documentation/)

## Docker

+ [Docker入门教程](http://www.docker.org.cn/book/docker/what-is-docker-16.html)
+ [视频:Docker入门](https://www.imooc.com/learn/867)

## RESTful

+ [怎样用通俗的语言解释REST,以及RESTful?](https://www.zhihu.com/question/28557115)

## 杂

+ [美团技术团队:常见性能优化策略的总结](http://tech.meituan.com/performance_tunning.html)

+ [美团技术团队:性能优化模式](http://tech.meituan.com/performance_tuning_pattern.html)