{"id":15026547,"url":"https://github.com/pansonpanson/java-notes","last_synced_at":"2025-05-16T12:05:45.844Z","repository":{"id":47263340,"uuid":"126586294","full_name":"PansonPanson/Java-Notes","owner":"PansonPanson","description":":books: 计算机科学基础知识、Java开发、后端/服务端、面试相关        :books: computer-science/Java-development/backend/interview","archived":false,"fork":false,"pushed_at":"2019-04-07T10:49:37.000Z","size":480,"stargazers_count":1567,"open_issues_count":1,"forks_count":286,"subscribers_count":59,"default_branch":"master","last_synced_at":"2025-04-09T07:04:35.368Z","etag":null,"topics":["backend","computer-network","computer-science","concurrency","database","distributed","java","jvm","message-queue","operating-system"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PansonPanson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-24T09:54:39.000Z","updated_at":"2025-04-08T01:06:13.000Z","dependencies_parsed_at":"2022-08-12T13:20:45.275Z","dependency_job_id":null,"html_url":"https://github.com/PansonPanson/Java-Notes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PansonPanson%2FJava-Notes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PansonPanson%2FJava-Notes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PansonPanson%2FJava-Notes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PansonPanson%2FJava-Notes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PansonPanson","download_url":"https://codeload.github.com/PansonPanson/Java-Notes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247994119,"owners_count":21030050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","computer-network","computer-science","concurrency","database","distributed","java","jvm","message-queue","operating-system"],"created_at":"2024-09-24T20:04:39.558Z","updated_at":"2025-04-09T07:04:44.495Z","avatar_url":"https://github.com/PansonPanson.png","language":null,"readme":"## 为什么要创建这个仓库？\n\n我在学习编程的时候，经常会搜索一些资料，但无论是Google还是百度，搜索出来的资料往往都不系统，资料的质量也参差不齐。直到现在，我都认为阅读书籍是最系统的学习方式。计算机科学的知识体系太庞大了，如果一些知识学过，却在之后一段时间不再触及，很容易就忘掉，但我们不可能时时刻刻都能随手拿到一本相应的书来作为参考，因此系统地整理一些自己看过的博文合集显得十分必要了。\n\n随着仓库维护时间越来越长，我发现仓库的内容不仅仅对自己有用，对别人也有一定的参考价值。在拿了一些star后，我渐渐加上了一些自己学习心得，主要是关于一些自己读过的书籍。希望对你们有参考价值。\n\n其实我觉得每个人都可以建一个这样的仓库，整理知识的过程也是一个学习的过程。通过反复阅读与复习，慢慢知识就成了自己的一部分。\n\n## 阅读需知：\n\n+ **推荐使用[chrome插件:简悦](http://ksria.com/simpread/)来阅读。**\n+ **如果你在中国境内，部分文章可能需要科学上网才能阅读；当然也有可能是链接失效，你可以提交issue，感谢你的贡献。**\n\n+ **仓库维护时间越久，文章目录越来越长，为了优化阅读体验，拆分了大章节，增加了每个大章节的链接。**\n\n|                         :strawberry:                         |                          :cherries:                          |                          :chestnut:                          |                           :peach:                            |                        :green_apple:                         |                           :apple:                            |                           :grapes:                           |                           :lemon:                            |\n| :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: |\n|                        **计算机科学**                        |                           **Java**                           |                           **Web**                            |                           **架构**                           |                          **中间件**                          |                          **分布式**                          |                           **工具**                           |                          **未分类**                          |\n| [计算机网络](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/) |\n| [操作系统](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) |\n| [数据库](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) |\n| [算法](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) |                                                              |                                                              |                                                              |\n\n\n\n# 一.计算机网络（Computer Networking）\n\n#### 推荐书籍\n\n+ [《图解HTTP》](https://book.douban.com/subject/25863515/)\n\n    图解系列感觉都还不错，对新手很友好。还有一本老厚老厚[《HTTP权威指南》](https://book.douban.com/subject/10746113/)，暂时还没有时间看。\n\n+ [《图解TCP/IP》](https://book.douban.com/subject/24737674/)\n\n    如果对网络零基础，可以作为阅读以下几本书的铺垫。\n\n+ [《计算机网络：自顶向下方法》](https://book.douban.com/subject/26176870/)\n\n  豆瓣上有人提供了本书的相应公开课,不过只看了书，公开课没看，[国立清华大学公开课地址](http://ocw.nthu.edu.tw/ocw/index.php?page=course\u0026cid=13\u0026)，[原贴地址](https://book.douban.com/review/7443456/)\n\n+ [《TCP/IP详解 卷1：协议》](https://book.douban.com/subject/1088054/)\n\n    计算机网络的权威书籍。了解到作者生平故事的时候，总觉得英年早逝，真的很可惜。\n\n+ [《计算机网络》](https://book.douban.com/subject/26960678/)\n\n    这本书其实是我最早看的关于计算机网络的书籍，是国内一些大学的教材，尽管自己也被国内很多教材荼毒过，但这本书还是不错的。\n\n#### 计算机网络总览\n\n+ [计算机网络](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)\n+ [HTTP](https://github.com/CyC2018/CS-Notes/blob/master/notes/HTTP.md)\n\n#### TCP、UDP\n\n+ [通俗大白话来理解TCP协议的三次握手和四次分手](https://github.com/jawil/blog/issues/14)\n+ [TCP 为什么是三次握手，而不是两次或四次？](https://www.zhihu.com/question/24853633)\n+ [理解 TCP 和 UDP](https://jerryc8080.gitbooks.io/understand-tcp-and-udp/)\n\n#### 计算机网络体系结构\n\n+ [OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系](https://www.cnblogs.com/wxd0108/p/7597216.html)\n\n#### HTTP\n\n+ **HTTP 请求方法**\n  + [MDN: HTTP 请求方法](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods)\n  + [w3school    HTTP 方法: GET 对比 POST](http://www.w3school.com.cn/tags/html_ref_httpmethods.asp)\n+ **HTTP 状态码**\n  + [w3school: HTTP 状态消息](http://www.w3school.com.cn/tags/html_ref_httpmessages.asp)\n  + [MDN: HTTP response codes](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/HTTP_response_codes)\n+ **HTTP 缓存** \n  + [MDN: HTTP 缓存 FAQ](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching_FAQ)\n  + [google developers: HTTP 缓存](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching?hl=zh-cn)\n  + [MDN: Cache-Control](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers)  ==\u003e\u003e [英文](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)\n+ **HTTP内容协商**\n  + [MDN: 内容协商](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Content_negotiation)  ==\u003e\u003e [英文: Content negotiation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation)\n  + [谈谈 HTTP/2 的协议协商机制](https://imququ.com/post/protocol-negotiation-in-http2.html)\n+ **HTTP内容安全策略( CSP )**\n  + [内容安全策略( CSP )](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CSP)   ==\u003e\u003e [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP)\n  + [阮一峰：Content Security Policy 入门教程](http://www.ruanyifeng.com/blog/2016/09/csp.html)\n+ **HTTP的发展：0.9/1.0/1.1/2.0**\n  + [MDN: HTTP的发展](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP)\n  + [[译] HTTP 的进化 - 0.9、1.0、1.1、Keep-Alive、Upgrade 和 HTTPS](https://juejin.im/post/5aefc2a3f265da0b8c24e0c5)\n  + [阮一峰：HTTP 协议入门](http://www.ruanyifeng.com/blog/2016/08/http.html)\n+ [HTTP/1.x 的连接管理](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Connection_management_in_HTTP_1.x)\n+ **Identifying resources on the Web**\n  + [URI、URL、URN 的联系和区别](https://waylau.com/difference-of-uri-url-urn/)\n  + [Identifying resources on the Web](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web)\n+ **浏览器发送一次网址请求的过程**\n  + [小白科普：从输入网址到最后浏览器呈现页面内容，中间发生了什么？](https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==\u0026mid=2665514196\u0026idx=1\u0026sn=ca26d258fcc4a35fc6d9a539b7d71dd7\u0026chksm=80d67c97b7a1f58198b2e6ae436f73c677c0df4c05c2a8a4aad2b9e2d523da57dd5cd3d0a8ee\u0026scene=21#wechat_redirect)\n  + [知乎：当你在浏览器中输入 baidu.com 并且按下回车后发生了什么？](https://zhuanlan.zhihu.com/p/28262282)  \n  + [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)\n+ **代理**\n  + [图解正向代理、反向代理、透明代理](http://blog.51cto.com/z00w00/1031287)\n\n#### SSH\n\n+ [SSH协议详解](http://airekans.github.io/protocol/2012/06/28/ssh-explained)\n+ [SSH 原理与运用（一）：远程登录](http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html)\n+ [SSH原理与运用（二）：远程操作与端口转发](http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html)\n\n#### SSL与TLS\n\n+ [阮一峰：SSL/TLS协议运行机制的概述](http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html)\n+ [阮一峰：图解SSL/TLS协议](http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html)\n+ [维基百科：传输层安全性协议](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)\n\n#### 集线器、交换机和路由器\n\n+ [路由器和交换机的不同之处有哪些？](https://www.zhihu.com/question/20465477)\n+ [如何跟小白解释路由器和交换机的区别？](https://www.zhihu.com/question/22007235)\n+ [集线器和交换机的区别？](https://www.zhihu.com/question/21782368)\n\n#### 全双工、半双工和单工\n\n+ [串口通讯的单工、半双工和全双工的定义、区别及应用](https://blog.csdn.net/hai673580326/article/details/37819611)\n\n#### CDN  \n\n+ [知乎：CDN是什么？使用CDN有什么优势？](https://www.zhihu.com/question/36514327?rf=37353035)\n\n#### Cookie、Session、Token\n\n+ [知乎：Cookie和Session有什么区别？](https://www.zhihu.com/question/19786827)\n+ [Cookie、Session、Token](https://www.jianshu.com/p/8ef0c5a551d3)\n\n#### 加解密算法\n\n+ [AES算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==\u0026mid=2653191726\u0026idx=1\u0026sn=c7856fe211471d01e9afdfea4a7f6b87\u0026chksm=8c990cf4bbee85e28bb2ea63cb1f767dee4702ca8b9ef23db3467558a4b27ff5b6c1893c8771\u0026scene=21#wechat_redirect)\n+ [SHA系列算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==\u0026mid=2653191642\u0026idx=1\u0026sn=47c6340a6664af2f62e6c580528ea6f6\u0026chksm=8c990f00bbee861698daa51b0622e581b3279c0759a16330fe538de745cb6abed8288b0bd778\u0026scene=21#wechat_redirect)\n+ [MD5算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==\u0026mid=2653191503\u0026idx=1\u0026sn=b18bd0458bf884bcb5d01f1cf2ca8301\u0026chksm=8c990f95bbee8683fcfa9e972fd887cb1e50328ab4d8bd1f6a68ea90de6c67f46e50847e36fb\u0026scene=21#wechat_redirect)\n+ [如何破解MD5算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==\u0026mid=2653191598\u0026idx=1\u0026sn=13ef6b99b8a9a25f18b839df13cd6e31\u0026chksm=8c990f74bbee866249af65e56a73f74b90a85b8497b9eea097f813a0b398a44fe0b8320967cd\u0026scene=21#wechat_redirect)\n+ [Base64算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==\u0026mid=2653191459\u0026idx=1\u0026sn=6e7d82dabe9c4a26b55f86f502edac03\u0026chksm=8c990ff9bbee86ef7d6eee8a92430ff529b57e2f8720d439b7a4fb83b9ba75cd91395509a239\u0026scene=21#wechat_redirect)\n\n# 二.操作系统（Operating System）\n\n## 操作系统基础知识(基于CSAPP)\n\n### 基础知识\n\n+ [【不周山之读薄 CSAPP】零 系列概览](https://wdxtub.com/2016/04/16/thin-csapp-0/)\n+ [壹 数据表示 - 不同的数据是如何存储与表示的](http://wdxtub.com/2016/04/16/thin-csapp-1/)\n+ [贰 机器指令与程序优化 - 控制流、过程调用、跳转](http://wdxtub.com/2016/04/16/thin-csapp-2/)\n+ [叁 内存与缓存 - 内存层级与缓存机制](http://wdxtub.com/2016/04/16/thin-csapp-3/)\n+ [肆 链接 - 不同的代码如何协同](http://wdxtub.com/2016/04/16/thin-csapp-4/)\n+ [伍 异常控制流 - 不同进程间的切换与沟通](http://wdxtub.com/2016/04/16/thin-csapp-5/)\n+ [陆 系统输入输出 - 怎么把不同的内容发送到不同的地方](http://wdxtub.com/2016/04/16/thin-csapp-6/)\n+ [柒 虚拟内存与动态内存分配 - 现代计算机中内存的奥秘](http://wdxtub.com/2016/04/16/thin-csapp-7/)\n+ [捌 网络编程 - 从最原始套接字彻底理解网络编程](http://wdxtub.com/2016/04/16/thin-csapp-8/)\n+ [玖 并行与同步 - 协同工作中最重要的两个问题](http://wdxtub.com/2016/04/16/thin-csapp-9/)\n\n### 实验部分\n\n+ [实验概览](http://wdxtub.com/2016/04/16/thick-csapp-lab-0/)\n+ [I Data Lab - 位操作，数据表示](http://wdxtub.com/2016/04/16/thick-csapp-lab-1/)\n+ [II Bomb Lab - 汇编，栈帧与 gdb](http://wdxtub.com/2016/04/16/thick-csapp-lab-2/)\n+ [III Attack Lab - 漏洞是如何被攻击的](http://wdxtub.com/2016/04/16/thick-csapp-lab-3/)\n+ [IV Cache Lab - 实现一个缓存系统来加速计算](http://wdxtub.com/2016/04/16/thick-csapp-lab-4/)\n+ [V Shell Lab - 实现一个 shell](http://wdxtub.com/2016/04/16/thick-csapp-lab-5/)\n+ [VI Malloc Lab - 实现一个动态内存分配](http://wdxtub.com/2016/04/16/thick-csapp-lab-6/)\n+ [VII Proxy Lab - 实现一个多线程带缓存的代理服务器](http://wdxtub.com/2016/04/16/thick-csapp-lab-7/)\n\n\n\n## Linux\n\n#### Linux基础\n\n+ [《The Linux Command Line》](https://book.douban.com/subject/6806862/)\n    + [对应的中文在线版](http://billie66.github.io/TLCL/book/)\n\n+ [实验楼：Linux基础](https://www.shiyanlou.com/courses/1)\n+ [Linux命令实例练习](https://www.shiyanlou.com/courses/68)\n+ [《鸟哥的Linux私房菜在线阅读》](http://linux.vbird.org/linux_basic/)\n+ [Linux 命令大全](http://www.runoob.com/linux/linux-command-manual.html)\n\n#### Linux shell\n\n+ [实验楼：高级 bash 脚本编程指南](https://www.shiyanlou.com/courses/944)\n+ [正则表达式基础](https://www.shiyanlou.com/courses/90)\n+ [《Linux Shell脚本攻略》](https://book.douban.com/subject/6889456/)\n\n\n#### Vim\n\n+ [Vim编辑器基本使用](https://www.shiyanlou.com/courses/2)\n+ [陈皓：简明 VIM 练级攻略](https://coolshell.cn/articles/5426.html)\n\n#### Linux内核\n\n# 三.数据库（Database）\n\n## 数据库理论\n\n#### 事务\n\n+ [『浅入深出』MySQL 中事务的实现](https://draveness.me/mysql-transaction)\n+ [彻底理解数据库事务](http://www.hollischuang.com/archives/898)\n+ [深入分析事务的隔离级别](http://www.hollischuang.com/archives/943)\n+ [知乎：数据库事务原子性、一致性是怎样实现的？](https://www.zhihu.com/question/30272728)\n+ [知乎：乐观锁和 MVCC 的区别？](https://www.zhihu.com/question/27876575)\n+ [浅谈数据库并发控制 - 锁和 MVCC](https://draveness.me/database-concurrency-control)\n+ [InnoDB存储引擎MVCC实现原理](https://liuzhengyang.github.io/2017/04/18/innodb-mvcc/)\n\n#### 范式\n\n+ [解释一下关系数据库的第一第二第三范式？](https://www.zhihu.com/question/24696366/answer/29189700)\n\n\n\n## MySQL\n\n+ [MySQL](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/MySQL.md)\n\n#### MySQL索引\n\n+ [MYSQL-索引](https://segmentfault.com/a/1190000003072424)\n+ [MySQL索引背后的数据结构及算法原理](http://blog.codinglabs.org/articles/theory-of-mysql-index.html) \n\n#### MySQL优化\n\n+ [MySQL 对于千万级的大表要怎么优化？](https://www.zhihu.com/question/19719997)\n+ [MYSQL性能优化的最佳20+条经验](https://coolshell.cn/articles/1846.html)    ===\u003e  [英文原文:Top 20+ MySQL Best Practices](https://code.tutsplus.com/tutorials/top-20-mysql-best-practices--net-7855)\n+ [MySQL 性能优化神器 Explain 使用分析](https://segmentfault.com/a/1190000008131735)\n+ [视频：性能优化之MySQL优化](https://www.imooc.com/learn/194)\n\n#### MySQL的锁\n\n+ [对mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解](https://blog.csdn.net/puhaiyang/article/details/72284702)\n+ [数据库的锁机制](http://www.hollischuang.com/archives/909)\n+ [深入理解乐观锁与悲观锁](http://www.hollischuang.com/archives/934)\n\n\n\n## Redis\n\n关于Redis的学习，命令与基础知识部分，Redis官网其实蛮详细了。\n\n+ [英文官网](https://redis.io/)\n\n+ [Redis中文网](http://www.redis.cn/)\n\n#### 书籍推荐：\n\n+ [《Redis开发与运维》](https://book.douban.com/subject/26971561/)\n\n    这本书主要是关于基础知识的讲解，比较全面，其实还有一本[《Redis实战》](https://book.douban.com/subject/26612779/)，我翻了翻，没怎么细看。\n\n+ [《Redis设计与实现》](https://book.douban.com/subject/25900156/)\n\n    Redis底层是用C语言写的，这本书剖析了Redis的内部源码实现，配图也很多，有很多经典巧妙的数据结构，我觉得是对算法学习很好的补充。\n\n+ [《Redis 深度历险：核心原理与应用实践》](https://book.douban.com/subject/30386804/)\n\n    这本书有对应的小册，在掘金官网上可以购买，我只看了小册，不过书和小册应该基本一致。\n\n#### 基础知识\n\n+  [字符串（strings）](http://www.redis.cn/topics/data-types-intro.html#strings)\n+  [散列（hashes）](http://www.redis.cn/topics/data-types-intro.html#hashes)\n+  [列表（lists）](http://www.redis.cn/topics/data-types-intro.html#lists)\n+  [集合（sets）](http://www.redis.cn/topics/data-types-intro.html#sets)\n+  [有序集合（sorted sets）](http://www.redis.cn/topics/data-types-intro.html#sorted-sets) \n+  [bitmaps](http://www.redis.cn/topics/data-types-intro.html#bitmaps)\n+  [hyperloglogs](http://www.redis.cn/topics/data-types-intro.html#hyperloglogs) \n+  [地理空间（geospatial）](http://www.redis.cn/commands/geoadd.html) \n+  [复制（replication）](http://www.redis.cn/topics/replication.html)\n+ [LUA脚本（Lua scripting）](http://www.redis.cn/commands/eval.html)\n+ [LRU驱动事件（LRU eviction）](http://www.redis.cn/topics/lru-cache.html)\n+ [事务（transactions）](http://www.redis.cn/topics/transactions.html) \n+ [磁盘持久化（persistence）](http://www.redis.cn/topics/persistence.html)\n+ [Redis哨兵（Sentinel）](http://www.redis.cn/topics/sentinel.html)\n+ [分区（Cluster）](http://www.redis.cn/topics/cluster-tutorial.html)\n\n#### 底层源码解析\n\n+ [合集](http://wiki.jikexueyuan.com/project/redis/)\n\n+ [Redis源码解析](https://redissrc.readthedocs.io/en/latest/index.html)\n\n#### 分布式锁\n\n+ [点我达技术：Redis分布式锁进化史](http://tech.dianwoda.com/2018/04/11/redisfen-bu-shi-suo-jin-hua-shi/)\n\n#### 缓存\n\n+ [美团技术团队：缓存那些事](https://tech.meituan.com/cache_about.html)\n\n\n\n# 四.算法(Algorithm)\n\n#### 排序算法\n\n+ [常见排序算法及对应的时间复杂度和空间复杂度](http://www.ganecheng.tech/blog/52652705.html)\n+ [常用的八种排序算法Java代码实现](https://www.jianshu.com/p/5e171281a387)\n+ [图解排序算法(一)之3种简单排序(选择，冒泡，直接插入)](https://www.cnblogs.com/chengxiao/p/6103002.html)\n+ [图解排序算法(二)之希尔排序](http://www.cnblogs.com/chengxiao/p/6104371.html) \n+ [图解排序算法(三)之堆排序](http://www.cnblogs.com/chengxiao/p/6129630.html) \n+ [图解排序算法(四)之归并排序](https://www.cnblogs.com/chengxiao/p/6194356.html)\n+ [图解排序算法(五)之快速排序——三数取中法](http://www.cnblogs.com/chengxiao/p/6262208.html) \n\n#### 递归与尾递归\n\n+ [知乎：什么是尾递归？](https://www.zhihu.com/question/20761771)\n\n#### 字典树（Trie） \n\n+ [从Trie树（字典树）谈到后缀树](https://blog.csdn.net/v_july_v/article/details/6897097)\n+ [Trie 三兄弟——标准 Trie、压缩 Trie、后缀 Trie](https://www.cnblogs.com/youxin/p/3301411.html)\n\n#### 红黑树\n\n+ [红黑树](https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/03.01.md)\n+ [美团技术团队：红黑树深入剖析及Java实现](https://tech.meituan.com/redblack_tree.html)\n\n#### KMP\n\n+ [为什么java String.contains 没有使用类似KMP字符串匹配算法进行优化？](https://www.zhihu.com/question/27852656)\n\n#### 布隆过滤器(Bloom Filter)\n\n+ [吴军：数学之美系列二十一 － 布隆过滤器（Bloom Filter）](https://china.googleblog.com/2007/07/bloom-filter_7469.html)\n+ [使用BloomFilter布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重](https://blog.csdn.net/tianyaleixiaowu/article/details/74721877)\n+ [布隆过滤器(Bloom Filter)的原理和实现](https://www.cnblogs.com/cpselvis/p/6265825.html)\n\n#### 一致性哈希\n\n+ [一致性哈希算法的理解与实践](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/)\n+ [一致性HASH算法详解](https://www.jianshu.com/p/e8fb89bb3a61)\n\n#### JDK里的排序算法\n\n+ [Java提供的排序算法是怎么实现的？](https://blog.csdn.net/xlgen157387/article/details/79863301)\n+ [排序算法在jdk源码中的应用](https://blog.csdn.net/java_student09/article/details/52235278)\n+ [java.util.Arrays的排序研究](http://hxraid.iteye.com/blog/665095)\n\n#### Huffman 编码\n\n+ [霍夫曼编码](https://zh.wikipedia.org/wiki/%E9%9C%8D%E5%A4%AB%E6%9B%BC%E7%BC%96%E7%A0%81)\n+ [HUFFMAN 编码压缩算法](https://coolshell.cn/articles/7459.html)\n\n#### 并查集\n\n+ [并查集(Union-Find)算法介绍](https://blog.csdn.net/dm_vincent/article/details/7655764)\n+ [维基百科：并查集](https://zh.wikipedia.org/wiki/%E5%B9%B6%E6%9F%A5%E9%9B%86)\n\n#### 动态规划\n\n+ [知乎：什么是动态规划？动态规划的意义是什么？](https://www.zhihu.com/question/23995189)\n+ [漫画：什么是动态规划？](https://juejin.im/post/5a29d52cf265da43333e4da7)\n\n#### 贪心\n\n+ \n\n# 五.Java基础（Basic）\n\n+ [Java基础](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%9F%BA%E7%A1%80.md)\n+ [美团技术团队：深入解析String的intern()方法](https://tech.meituan.com/in_depth_understanding_string_intern.html)\n+ [Java本地方法](https://blog.csdn.net/wi__wi/article/details/51085907)\n+ [Java中的Switch对整型、字符型、字符串型的具体实现细节](http://www.hollischuang.com/archives/61)\n\n#### Java枚举\n\n+ [深入理解Java枚举类型(enum)](https://blog.csdn.net/javazejian/article/details/71333103)\n\n#### Java异常\n\n+ [Java 异常处理](http://www.runoob.com/java/java-exceptions.html)\n+ [throw和throws有什么区别？](https://www.nowcoder.com/questionTerminal/b769424fb8bf49d9bff97353c75d6f06)\n+ [Java 中的异常和处理详解](http://www.importnew.com/26613.html)\n+ [知乎：如何优雅地处理异常？](https://www.zhihu.com/question/28254987)\n\n\n#### 序列化与反序列化\n\n+ [美团技术团队：序列化和反序列化](https://tech.meituan.com/serialization_vs_deserialization.html)\n\n#### 反射\n\n  + [知乎：学习java应该如何理解反射？](https://www.zhihu.com/question/24304289)\n  + [深入解析Java反射（1） - 基础](https://www.sczyh30.com/posts/Java/java-reflection-1/#)\n  + [深入解析Java反射（2） - invoke方法](https://www.sczyh30.com/posts/Java/java-reflection-2/)\n  + [并发编程网：Java Reflection教程 ](http://ifeve.com/java-reflection/)\n  + [反射——Java高级开发必须懂的](https://www.imooc.com/learn/199)\n\n#### 注解\n\n+ [全面解析Java注解](http://www.imooc.com/learn/456)\n+ [并发编程网：Java注解教程及自定义注解](http://ifeve.com/java-annotations/)\n\n\n#### String、StringBuilder和StringBuffer\n\n+ [在java中String类为什么要设计成final？ - 知乎](https://www.zhihu.com/question/31345592)\n+ [Java StringBuilder和StringBuffer源码分析](https://segmentfault.com/a/1190000004261063)\n+ Stack Overflow： [String, StringBuffer, and StringBuilder](https://stackoverflow.com/questions/2971315/string-stringbuffer-and-stringbuilder)\n\n#### hashCode()和equals()\n\n+ [Java hashCode() 和 equals()的若干问题解答](https://www.cnblogs.com/skywang12345/p/3324958.html) \n+ [Java提高篇——equals()与hashCode()方法详解](https://www.cnblogs.com/Qian123/p/5703507.html)\n+ [面试官爱问的equals与hashCode](https://juejin.im/post/5a4379d4f265da432003874c)\n\n\n#### Java IO\n\n+ [Java IO教程](http://ifeve.com/java-io/)\n+ [文件传输基础——Java IO流](https://www.imooc.com/learn/123)\n+ [Java NIO 系列教程](http://ifeve.com/java-nio-all/)\n+ [以Java的视角来聊聊BIO、NIO与AIO的区别？](https://juejin.im/entry/598da7d16fb9a03c42431ed3)\n\n#### Java容器  ==\u003e\u003e  推荐阅读[《分布式Java应用 基础与实践》](https://book.douban.com/subject/4848587/)第四章\n\n+ [Java集合学习指南](http://wiki.jikexueyuan.com/project/java-collection/)\n\n+ [java 集合类知识汇总](https://mp.weixin.qq.com/s/2P-wEvmig-M2Ehde1REGjQ)\n\n+ [Java 容器](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%AE%B9%E5%99%A8.md#arraylist)\n\n+ [ArrayList vs. LinkedList vs. Vector](http://www.importnew.com/8782.html)\n\n+ [ArrayList、LinkedList、Vector、HashSet、Treeset、HashMap、TreeMap的区别和适用场景](http://bs-yg.iteye.com/blog/2253605)\n\n+ [Java Collections Framework - ArrayList](https://www.jianshu.com/p/4b7aa8a022ba)\n\n+ **HashMap与ConcurrentHashMap**\n\n  + [Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析](https://javadoop.com/post/hashmap)\n\n  + [占小狼：深入浅出ConcurrentHashMap1.8](https://www.jianshu.com/p/c0642afe03e0)\n  + [占小狼：谈谈ConcurrentHashMap1.7和1.8的不同实现](https://www.jianshu.com/p/e694f1e868ec)\n  + [占小狼：ConcurrentHashMap的红黑树实现分析](https://www.jianshu.com/p/23b84ba9a498)\n  + [占小狼：老生常谈，HashMap的死循环](https://www.jianshu.com/p/1e9cf0ac07f4)\n  + [HashMap与ConcurrentHashMap在JDK1.7和JDK1.8中的实现](https://crossoverjie.top/2018/07/23/java-senior/ConcurrentHashMap/)\n  + [美团技术团队：Java 8系列之重新认识HashMap](https://tech.meituan.com/java_hashmap.html)\n\n+ **优先级队列**\n  + [PriorityQueue](https://github.com/CarpenterLee/JCFInternals/blob/master/markdown/8-PriorityQueue.md)\n  + [优先级队列是一种什么样的数据结构](http://www.importnew.com/6510.html)\n  + [堆排序和 PriorityQueue 源码解析](https://zhuanlan.zhihu.com/p/25843530)\n  + [基于堆实现的优先级队列：PriorityQueue 解决 Top K 问题](https://my.oschina.net/leejun2005/blog/135085)\n  + [jdk源码分析PriorityQueue](http://zswlib.iteye.com/blog/2334463)]\n\n#### Java 8 ==\u003e\u003e 推荐阅读《Java 8实战》与《Java 8函数式编程》\n\n+ [What's New in JDK 8](http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html)\n+ [IBM: Java 8 新特性概述](https://www.ibm.com/developerworks/cn/java/j-lo-jdk8newfeature/index.html)\n+ [Java 8 特性 – 终极手册](http://www.importnew.com/19345.html)\n+ [IBM:Java 8 中的 Streams API 详解](https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/)\n\n#### 值得思考的问题：\n\n+ [Java 8接口上的default method设计目的是什么？](\n  https://www.zhihu.com/question/41166418/answer/139494009)\n\n#  六.Java并发（Concurrency）\n\n#### 推荐书籍：\n\n+ [《Java并发编程的艺术》](https://book.douban.com/subject/26591326/)\n\n    z这本书比《Java并发编程实战》更适合入门一些。作者还创办了并发编程网，里面有很多值得读的文章。\n\n+ [《Java并发编程实战》](https://book.douban.com/subject/10484692/)\n\n    jdk并发包作者写的书，书很好，但翻译为人诟病很久。\n\n+ [《实战Java高并发程序设计》](https://book.douban.com/subject/26663605/)\n\n    在图书馆瞎逛的时候看到的一本书，翻了翻，出乎意料地不错，涉及到一些Java8函数式编程的知识。\n\n#### 并发合集\n\n+ [深入理解java内存模型系列文章](http://ifeve.com/java-memory-model-0/)\n+ [深入浅出 Java Concurrency](http://www.blogjava.net/xylz/archive/2010/07/08/325587.html) \n+ [死磕Java并发](https://www.jianshu.com/nb/12860760)\n+ [Java 并发](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%B9%B6%E5%8F%91.md)\n+ [Java 并发知识合集](https://github.com/CL0610/Java-concurrency)\n\n#### Java并发工具类之LongAdder\n\n+ [Java并发工具类之LongAdder原理总结](https://github.com/aCoder2013/blog/issues/22)\n+ [Java8 Striped64 和 LongAdder](http://ifeve.com/java8-striped64-and-longadder/)\n\n#### 线程池\n\n+ [深入分析java线程池的实现原理](https://www.jianshu.com/p/87bff5cc8d8c)\n+ [线程池的工作原理与源码解读](https://www.cnblogs.com/qingquanzi/p/8146638.html)\n+ [Java并发编程：线程池的使用](https://www.cnblogs.com/dolphin0520/p/3932921.html)\n+ [聊聊并发（三）——JAVA线程池的分析和使用](http://www.infoq.com/cn/articles/java-threadPool)\n\n#### 阻塞队列\n\n+ [聊聊并发（七）——Java中的阻塞队列](http://www.infoq.com/cn/articles/java-blocking-queue?utm_source=infoq\u0026utm_campaign=user_page\u0026utm_medium=link)\n+ [【死磕Java并发】-----J.U.C之阻塞队列：BlockingQueue总结](https://www.jianshu.com/p/4af8ab00c587)\n+ [【死磕Java并发】-----J.U.C之阻塞队列：ArrayBlockingQueue](https://www.jianshu.com/p/0a0b58934401)\n+ [【死磕Java并发】-----J.U.C之阻塞队列：LinkedBlockingDeque](https://www.jianshu.com/p/f1b2c053c103)\n+ [【死磕Java并发】-----J.U.C之阻塞队列：PriorityBlockingQueue](https://www.jianshu.com/p/43954715aa28)\n+ [【死磕Java并发】-----J.U.C之阻塞队列：SynchronousQueue](https://www.jianshu.com/p/9d2c706e45b7)\n+ [【死磕Java并发】-----J.U.C之阻塞队列：LinkedTransferQueue](https://www.jianshu.com/p/bd708cb3ea91)\n\n#### synchronized和lock\n\n+ [【死磕Java并发】-----深入分析synchronized的实现原理](https://www.jianshu.com/p/fe49b156b1a6)\n+ [深入浅出synchronized](https://www.jianshu.com/p/19f861ab749e)\n+ [Lock与synchronized 的区别](http://houlinyan.iteye.com/blog/1112535)\n+ [并发编程的锁机制：synchronized和lock](https://juejin.im/post/5a43ad786fb9a0450909cb5f)\n\n#### CAS\n\n+ [面试必问的CAS，要多了解](https://www.jianshu.com/p/24ffe531e9ee)\n+ [乐观锁的一种实现方式——CAS](http://www.hollischuang.com/archives/1537)\n+ [【死磕Java并发】-----J.U.C之深入分析CAS](https://www.jianshu.com/p/61c90bd79d66)\n\n#### ThreadLocal\n\n+ [深入浅出ThreadLocal](https://www.jianshu.com/p/33c5579ef44f)\n+ [Java面试必问，ThreadLocal终极篇](https://www.jianshu.com/p/377bb840802f)\n+ [【死磕Java并发】—–深入分析ThreadLocal](http://cmsblogs.com/?p=2442)\n\n#### Java中的锁\n\n+ [Java中的锁](http://www.importnew.com/19472.html)\n+ [【死磕Java并发】-----J.U.C之重入锁：ReentrantLock](https://www.jianshu.com/p/508412a6ffdc)\n+ [【死磕Java并发】-----J.U.C之读写锁：ReentrantReadWriteLock](https://www.jianshu.com/p/d47fe1ec1bb3)\n\n####  Java秒杀\n\n+ [设计一个秒杀系统](https://github.com/crossoverJie/JCSprout/blob/master/MD/Spike.md)\n+ [秒杀架构实践](https://crossoverjie.top/2018/05/07/ssm/SSM18-seconds-kill/)\n+ [限流算法](https://github.com/crossoverJie/JCSprout/blob/master/MD/Limiting.md)\n+ [知乎：秒杀系统设计](https://www.zhihu.com/question/54895548)\n\n\n\n# 七.Java虚拟机（JVM）\n\n#### 推荐书籍\n\n+ [《深入理解Java虚拟机》](https://book.douban.com/subject/24722612/)\n\n    学过JVM的应该都看过这本书，比较详细，但这本书第二版是2013年出的，HotSpot在具体实现上有了一些变化，比如说内存结构Perm区的继任者Metaspace，以及一些新的垃圾收集器也出现了，这部分内容需要再自己选择性地去补充学习。\n\n+ [《实战Java虚拟机》](https://book.douban.com/subject/26354292/)\n\n    相比较上一本，这一本书感觉更基础，两者可以相互补充。\n\n#### 合集\n\n+ [JVM一览](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E8%99%9A%E6%8B%9F%E6%9C%BA.md)\n+ [Jvm知识汇总篇](https://zhuanlan.zhihu.com/p/34426768)\n\n#### JVM内存结构\n\n+ [JAVA8：永久代(PermGen)和元空间(Metaspace)](https://www.cnblogs.com/paddix/p/5309550.html)\n\n+ [JVM内存结构 VS Java内存模型 VS Java对象模型](https://blog.csdn.net/hollis_chuang/article/details/80839410)\n+ [JVM内存的那些事](https://www.jianshu.com/p/eaef248b5a2c)\n\n#### 垃圾收集（GC)\n\n+ [深入理解 java 垃圾回收机制](https://www.cnblogs.com/sunniest/p/4575144.html)\n+ [不同的垃圾回收器的比较](http://www.importnew.com/15869.html)\n+ [了解CMS(Concurrent Mark-Sweep)垃圾回收器](http://www.importnew.com/2782.html)\n+ [并发编程网：深入理解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/)\n+ [占小狼：G1垃圾收集器介绍](https://www.jianshu.com/p/0f1f5adffdc1)\n+ [占小狼：Java GC的那些事（1）](https://www.jianshu.com/p/6d1cbe38a54b)\n+ [占小狼：Java GC的那些事（2）](https://www.jianshu.com/p/94989b278114)\n+ [Java GC系列（1）：Java垃圾回收简介](http://www.importnew.com/13504.html)\n+ [Java GC系列（2）：Java垃圾回收是如何工作的？](http://www.importnew.com/13493.html)\n+ [Java GC系列（3）：垃圾回收器种类](http://www.importnew.com/13827.html)\n+ [Java GC系列（4）：垃圾回收监视和分析](http://www.importnew.com/13838.html)\n+ [知乎：怎么在面试时回答Java垃圾回收机制（GC）相关问题？](https://www.zhihu.com/question/35164211)\n+ [美团技术团队：Java Hotspot G1 GC的一些关键技术](https://tech.meituan.com/g1.html)\n\n#### 类加载\n\n+ [深入探讨 Java 类加载器](https://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html)\n+ [深入分析Java ClassLoader原理](http://www.importnew.com/15362.html)\n\n#### 性能调优\n\n+ [并发编程网：JVM实用参数系列 ](http://ifeve.com/useful-jvm-flags/)\n+ [美团技术团队：从实际案例聊聊Java应用的GC优化](https://tech.meituan.com/jvm_optimize.html)\n\n\n\n# 八.架构与设计\n\n## 设计模式\n\n+ [设计模式合集](http://wiki.jikexueyuan.com/project/java-design-pattern-principle/)\n\n## 系统设计\n\n+ [系统设计面试之前需要知道的八件事](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd1.html)\n+ 设计Twitter\n    + [如何设计 Twitter（第一部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd2.html)\n    + [如何设计 Twitter（第二部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd3.html)\n+ [创建照片分享应用](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd4.html)\n+ [创建短网址系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd5.html)\n+ [如何设计 Google Docs](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd6.html)\n+  设计新闻推送系统\n    + [设计新闻推送系统（第一部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd7.html)\n    + [设计新闻推送系统（第二部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd8.html)\n+ [设计 Facebook 聊天功能](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd9.html)\n+ [如何为 Twitter 设计趋势算法](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd10.html)\n+ [设计缓存系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd11.html)\n+ [设计推荐系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd12.html)\n+ [随机 ID 生成器](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd13.html)\n+ 设计键值存储\n    + [设计键值存储（第一部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd14.html)\n    + [设计键值存储（第二部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd15.html)\n+ [构建网页爬虫](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd16.html)\n+ 设计垃圾回收系统\n    + [设计垃圾回收系统（第一部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd17.html)\n    + [设计垃圾回收系统（第二部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd18.html)\n+ 设计电商网站\n    + [设计电商网站（第一部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd19.html)\n    + [设计电商网站（第二部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd20.html)\n+ [设计点击计数器](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd21.html)\n+ 设计 Youtube\n    + [设计 Youtube（第一部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd22.html)\n    + [设计 Youtube（第二部分）](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd23.html)\n\n# 九.框架（Framework）\n\n## Spring\n\n+ [Spring 框架的设计理念与设计模式分析](https://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/index.html)\n\n#### IoC\n\n+ [知乎：Spring IOC原理总结](https://zhuanlan.zhihu.com/p/29344811)\n+ [知乎：Spring IoC有什么好处呢？](https://www.zhihu.com/question/23277575)\n+ BeanFactory、ApplicationContext以及WebApplicationContext\n+ BeanFactory和ApplicationContext中各自Bean的生命周期\n+ Bean的注入方式和作用域\n\n#### AOP\n\n+ [Spring AOP 实现原理与 CGLIB 应用](https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/index.html)\n+ [探秘Spring AOP](https://www.imooc.com/learn/869)\n+ **动态代理**\n  + [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/)\n  + [Java Proxy 和 CGLIB 动态代理原理](http://www.importnew.com/27772.html)\n\n#### 常用知识点\n\n+ [Spring常见面试题](https://www.w3cschool.cn/fisug/)\n+ [知乎：@Autowired和@Resource的区别是什么？](https://www.zhihu.com/question/39356740)\n+ StringRedisTemplate 类\n  + [Spring Doc: Class StringRedisTemplate](https://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/core/StringRedisTemplate.html)\n  + [如何使用RedisTemplate访问Redis数据结构](https://www.jianshu.com/p/7bf5dc61ca06)\n+ **RestTemplate类**\n  + [Spring Doc: Class RestTemplate](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html)\n  + [A Guide to the RestTemplate | Baeldung](https://www.baeldung.com/rest-template)\n  + [Spring RestTemplate 中几种常见的请求方式](https://blog.csdn.net/u012702547/article/details/77917939)\n+ **EntityManager**\n  + [EntityManager相关核心概念](https://blog.csdn.net/dm_vincent/article/details/52615532)\n  + [EntityManager相关](https://blog.csdn.net/u010837612/article/details/47666131)\n\n#### Spring源码\n\n+ [死磕Spring](http://cmsblogs.com/?cat=206)\n+ [Spring源码阅读](https://github.com/seaswalker/Spring)\n+ [Spring 实现原理与源码解析系统](http://www.iocoder.cn/Spring/good-collection/)]\n\n## Spring Boot\n\n+ [@SpringBootApplication(源码分析与启动流程)](http://tengj.top/2017/03/09/springboot3/)  ==\u003e\u003e  推荐阅读《Spring Boot揭秘》第三章\n\n+ **参考视频教程**\n  + [SpringBoot开发常用技术整合](https://www.imooc.com/learn/956)\n  + [Spring Boot聚合工程](https://www.imooc.com/learn/933)\n  + [Spring Boot热部署](https://www.imooc.com/learn/915)\n+ **参考文档以及开原作品索引**\n  + [Spring Boot 中文索引](http://springboot.fun/)\n\n#### Thymeleaf\n\n+ [Thymeleaf-Reference-Guide中文翻译](https://github.com/jack80342/Thymeleaf-Reference-Guide)\n\n## Spring MVC\n\n+ [SpringMVC深度探险系列](http://www.iteye.com/blogs/subjects/springmvc-explore)\n\n#### **Servlet**\n\n+ [知乎：servlet的本质是什么，它是如何工作的？](https://www.zhihu.com/question/21416727)\n+ [许令波：Servlet 工作原理解析](https://www.ibm.com/developerworks/cn/java/j-lo-servlet/index.html)\n+ [Servlet生命周期与工作原理](https://www.cnblogs.com/cuiliang/archive/2011/10/21/2220671.html)\n\n#### **redirect和forward**\n\n+ [知乎：web开发过程中redirect和forward有什么区别？](https://www.zhihu.com/question/38013677)\n+ [请求转发（Forward）和重定向（Redirect）的区别](https://www.cnblogs.com/Qian123/p/5345527.html) \n\n#### Spring MVC常用注解\n\n+ [springmvc常用注解标签详解](https://www.cnblogs.com/leskang/p/5445698.html)\n\n+ [Spring MVC 的常用注解](https://blog.csdn.net/qian_ch/article/details/73826663)\n\n#### 面试相关\n\n+ [SpringMVC面试题](https://www.w3cschool.cn/qgutf/)\n\n## MyBatis\n\n+ [MyBatis Reference Documentation](http://www.mybatis.org/mybatis-3/index.html)    ===\u003e  [中文文档](http://www.mybatis.org/mybatis-3/zh/index.html)\n+ [美团技术团队：聊聊MyBatis缓存机制](https://tech.meituan.com/mybatis_cache.html)\n+ [动态SQL](http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html)\n+ [MyBatis常见面试题](https://www.w3cschool.cn/kzsow/)\n+ MyBatis中的#与$的区别\n\n## Spring Cloud\n\n+ **参考文档以及开源作品索引**\n  + [Spring Cloud 中文索引](http://springcloud.fun/)\n\n# 十.中间件\n\n## 1.Web Server\n\n### Tomcat\n\n### Nginx\n\n## 2.消息队列\n\n### RabbitMQ\n\n### RocketMQ\n\n### kafka\n\n### ActiveMQ\n\n# 十一.分布式\n\n## 1.分布式基础理论\n\n+ [美团技术团队：分布式系统互斥性与幂等性问题的分析与解决](https://tech.meituan.com/distributed_system_mutually_exclusive_idempotence_cerberus_gtis.html)\n+ [分布式基础理论](https://github.com/CyC2018/CS-Notes/blob/master/notes/%E5%88%86%E5%B8%83%E5%BC%8F.md)\n+ **CAP理论：**\n  + 论文：[Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web](https://users.ece.cmu.edu/~adrian/731-sp04/readings/GL-cap.pdf)\n  + [CAP 定理的含义](http://www.ruanyifeng.com/blog/2018/07/cap.html)\n  + [分布式理论(一) - CAP定理](https://juejin.im/post/5b26634b6fb9a00e765e75d1)\n+ **BASE理论：**\n    + [分布式理论(二) - BASE理论](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2663fcf265da59a401e6f8)\n+ **2PC协议：**\n    + [分布式理论(三) - 2PC协议](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664446fb9a00e4a53136e)\n+ **3PC协议：**\n    + [分布式理论(四) - 3PC协议](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b26648e5188257494641b9f)\n+ **一致性算法Paxos:**\n    + [分布式理论(五) - 一致性算法Paxos](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664bd51882574874d8a76)\n+ **一致性协议Raft:**\n    + [分布式理论(六) - 一致性协议Raft](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664e2f265da59584d8c90)\n+ **分布式事务**\n  + [事务相关基础知识](http://www.hollischuang.com/archives/tag/%E4%BA%8B%E5%8A%A1)\n  + [分布式事务](http://tech.dianwoda.com/2018/09/27/fen-bu-shi-shi-wu/)\n  + [IBM developerWorks : JTA 深度历险 - 原理与实现](https://www.ibm.com/developerworks/cn/java/j-lo-jta/index.html)\n+ **happens-before**\n  + 论文：[Time, Clocks, and the Ordering of Events in a Distributed System](https://lamport.azurewebsites.net/pubs/time-clocks.pdf)\n\n# 十二.搜索引擎\n\n## Elasticsearch\n\n## Apache Solr\n\n\n\n# 十二.其他\n\n## IDEA\n\n+ [IntelliJ-IDEA-Tutorial](https://github.com/judasn/IntelliJ-IDEA-Tutorial)\n+ [IntelliJ IDEA神器使用技巧](https://www.imooc.com/learn/924)\n\n## Postman\n\n+ [Postman系列教程](https://www.jellythink.com/archives/category/tool-tutorials/postman)\n\n## 压力测试\n\n+ Apache bench\n+ JMeter\n\n## Swagger\n\n## Git\n\n+ [使用git提交到github,每次都要输入用户名和密码的解决方法](https://www.cnblogs.com/sky6862/p/7992736.html)\n+ [GitHub \u0026 Git](https://www.nowcoder.com/courses/2)\n+ [《Pro Git》](http://iissnan.com/progit/)\n\n## 任务调度\n+ [Java定时任务调度工具详解之Timer篇](https://www.imooc.com/learn/841)\n+ [Java定时任务调度工具详解之Quartz篇](https://www.imooc.com/learn/846)\n+ [Quartz官方文档中文版](https://www.w3cschool.cn/quartz_doc/)\n+ [Quartz Documentation](http://www.quartz-scheduler.org/documentation/)\n\n## Docker\n\n+ [Docker入门教程](http://www.docker.org.cn/book/docker/what-is-docker-16.html)\n+ [视频：Docker入门](https://www.imooc.com/learn/867)\n\n## RESTful \n\n+ [怎样用通俗的语言解释REST，以及RESTful？](https://www.zhihu.com/question/28557115)\n\n## 杂\n\n+ [美团技术团队：常见性能优化策略的总结](http://tech.meituan.com/performance_tunning.html)\n\n+ [美团技术团队：性能优化模式](http://tech.meituan.com/performance_tuning_pattern.html) \n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpansonpanson%2Fjava-notes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpansonpanson%2Fjava-notes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpansonpanson%2Fjava-notes/lists"}