├── LICENSE ├── README.md └── md ├── JVM.md ├── Java基础.md ├── Java并发.md ├── Web Server.md ├── Zookeeper.md ├── 其他.md ├── 分布式.md ├── 搜索引擎.md ├── 操作系统.md ├── 数据库.md ├── 框架.md ├── 消息队列.md ├── 科普系列.md ├── 算法.md ├── 系统设计.md ├── 计算机网络.md └── 设计模式.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Panson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 为什么要创建这个仓库? 2 | 3 | 我在学习编程的时候,经常会搜索一些资料,但无论是Google还是百度,搜索出来的资料往往都不系统,资料的质量也参差不齐。直到现在,我都认为阅读书籍是最系统的学习方式。计算机科学的知识体系太庞大了,如果一些知识学过,却在之后一段时间不再触及,很容易就忘掉,但我们不可能时时刻刻都能随手拿到一本相应的书来作为参考,因此系统地整理一些自己看过的博文合集显得十分必要了。 4 | 5 | 随着仓库维护时间越来越长,我发现仓库的内容不仅仅对自己有用,对别人也有一定的参考价值。在拿了一些star后,我渐渐加上了一些自己学习心得,主要是关于一些自己读过的书籍。希望对你们有参考价值。 6 | 7 | 其实我觉得每个人都可以建一个这样的仓库,整理知识的过程也是一个学习的过程。通过反复阅读与复习,慢慢知识就成了自己的一部分。 8 | 9 | ## 阅读需知: 10 | 11 | + **推荐使用[chrome插件:简悦](http://ksria.com/simpread/)来阅读。** 12 | + **如果你在中国境内,部分文章可能需要科学上网才能阅读;当然也有可能是链接失效,你可以提交issue,感谢你的贡献。** 13 | 14 | + **仓库维护时间越久,文章目录越来越长,为了优化阅读体验,拆分了大章节,增加了每个大章节的链接。** 15 | 16 | | :strawberry: | :cherries: | :chestnut: | :peach: | :green_apple: | :apple: | :grapes: | :lemon: | 17 | | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | 18 | | **计算机科学** | **Java** | **Web** | **架构** | **中间件** | **分布式** | **工具** | **未分类** | 19 | | [计算机网络](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/) | 20 | | [操作系统](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) | 21 | | [数据库](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) | 22 | | [算法](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) | | | | 23 | 24 | 25 | 26 | # 一.计算机网络(Computer Networking) 27 | 28 | #### 推荐书籍 29 | 30 | + [《图解HTTP》](https://book.douban.com/subject/25863515/) 31 | 32 | 图解系列感觉都还不错,对新手很友好。还有一本老厚老厚[《HTTP权威指南》](https://book.douban.com/subject/10746113/),暂时还没有时间看。 33 | 34 | + [《图解TCP/IP》](https://book.douban.com/subject/24737674/) 35 | 36 | 如果对网络零基础,可以作为阅读以下几本书的铺垫。 37 | 38 | + [《计算机网络:自顶向下方法》](https://book.douban.com/subject/26176870/) 39 | 40 | 豆瓣上有人提供了本书的相应公开课,不过只看了书,公开课没看,[国立清华大学公开课地址](http://ocw.nthu.edu.tw/ocw/index.php?page=course&cid=13&),[原贴地址](https://book.douban.com/review/7443456/) 41 | 42 | + [《TCP/IP详解 卷1:协议》](https://book.douban.com/subject/1088054/) 43 | 44 | 计算机网络的权威书籍。了解到作者生平故事的时候,总觉得英年早逝,真的很可惜。 45 | 46 | + [《计算机网络》](https://book.douban.com/subject/26960678/) 47 | 48 | 这本书其实是我最早看的关于计算机网络的书籍,是国内一些大学的教材,尽管自己也被国内很多教材荼毒过,但这本书还是不错的。 49 | 50 | #### 计算机网络总览 51 | 52 | + [计算机网络](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) 53 | + [HTTP](https://github.com/CyC2018/CS-Notes/blob/master/notes/HTTP.md) 54 | 55 | #### TCP、UDP 56 | 57 | + [通俗大白话来理解TCP协议的三次握手和四次分手](https://github.com/jawil/blog/issues/14) 58 | + [TCP 为什么是三次握手,而不是两次或四次?](https://www.zhihu.com/question/24853633) 59 | + [理解 TCP 和 UDP](https://jerryc8080.gitbooks.io/understand-tcp-and-udp/) 60 | 61 | #### 计算机网络体系结构 62 | 63 | + [OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系](https://www.cnblogs.com/wxd0108/p/7597216.html) 64 | 65 | #### HTTP 66 | 67 | + **HTTP 请求方法** 68 | + [MDN: HTTP 请求方法](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods) 69 | + [w3school HTTP 方法: GET 对比 POST](http://www.w3school.com.cn/tags/html_ref_httpmethods.asp) 70 | + **HTTP 状态码** 71 | + [w3school: HTTP 状态消息](http://www.w3school.com.cn/tags/html_ref_httpmessages.asp) 72 | + [MDN: HTTP response codes](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/HTTP_response_codes) 73 | + **HTTP 缓存** 74 | + [MDN: HTTP 缓存 FAQ](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching_FAQ) 75 | + [google developers: HTTP 缓存](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching?hl=zh-cn) 76 | + [MDN: Cache-Control](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers) ==>> [英文](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) 77 | + **HTTP内容协商** 78 | + [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) 79 | + [谈谈 HTTP/2 的协议协商机制](https://imququ.com/post/protocol-negotiation-in-http2.html) 80 | + **HTTP内容安全策略( CSP )** 81 | + [内容安全策略( 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) 82 | + [阮一峰:Content Security Policy 入门教程](http://www.ruanyifeng.com/blog/2016/09/csp.html) 83 | + **HTTP的发展:0.9/1.0/1.1/2.0** 84 | + [MDN: HTTP的发展](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP) 85 | + [[译] HTTP 的进化 - 0.9、1.0、1.1、Keep-Alive、Upgrade 和 HTTPS](https://juejin.im/post/5aefc2a3f265da0b8c24e0c5) 86 | + [阮一峰:HTTP 协议入门](http://www.ruanyifeng.com/blog/2016/08/http.html) 87 | + [HTTP/1.x 的连接管理](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Connection_management_in_HTTP_1.x) 88 | + **Identifying resources on the Web** 89 | + [URI、URL、URN 的联系和区别](https://waylau.com/difference-of-uri-url-urn/) 90 | + [Identifying resources on the Web](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web) 91 | + **浏览器发送一次网址请求的过程** 92 | + [小白科普:从输入网址到最后浏览器呈现页面内容,中间发生了什么?](https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665514196&idx=1&sn=ca26d258fcc4a35fc6d9a539b7d71dd7&chksm=80d67c97b7a1f58198b2e6ae436f73c677c0df4c05c2a8a4aad2b9e2d523da57dd5cd3d0a8ee&scene=21#wechat_redirect) 93 | + [知乎:当你在浏览器中输入 baidu.com 并且按下回车后发生了什么?](https://zhuanlan.zhihu.com/p/28262282) 94 | + [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) 95 | + **代理** 96 | + [图解正向代理、反向代理、透明代理](http://blog.51cto.com/z00w00/1031287) 97 | 98 | #### SSH 99 | 100 | + [SSH协议详解](http://airekans.github.io/protocol/2012/06/28/ssh-explained) 101 | + [SSH 原理与运用(一):远程登录](http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html) 102 | + [SSH原理与运用(二):远程操作与端口转发](http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html) 103 | 104 | #### SSL与TLS 105 | 106 | + [阮一峰:SSL/TLS协议运行机制的概述](http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html) 107 | + [阮一峰:图解SSL/TLS协议](http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html) 108 | + [维基百科:传输层安全性协议](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) 109 | 110 | #### 集线器、交换机和路由器 111 | 112 | + [路由器和交换机的不同之处有哪些?](https://www.zhihu.com/question/20465477) 113 | + [如何跟小白解释路由器和交换机的区别?](https://www.zhihu.com/question/22007235) 114 | + [集线器和交换机的区别?](https://www.zhihu.com/question/21782368) 115 | 116 | #### 全双工、半双工和单工 117 | 118 | + [串口通讯的单工、半双工和全双工的定义、区别及应用](https://blog.csdn.net/hai673580326/article/details/37819611) 119 | 120 | #### CDN 121 | 122 | + [知乎:CDN是什么?使用CDN有什么优势?](https://www.zhihu.com/question/36514327?rf=37353035) 123 | 124 | #### Cookie、Session、Token 125 | 126 | + [知乎:Cookie和Session有什么区别?](https://www.zhihu.com/question/19786827) 127 | + [Cookie、Session、Token](https://www.jianshu.com/p/8ef0c5a551d3) 128 | 129 | #### 加解密算法 130 | 131 | + [AES算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191726&idx=1&sn=c7856fe211471d01e9afdfea4a7f6b87&chksm=8c990cf4bbee85e28bb2ea63cb1f767dee4702ca8b9ef23db3467558a4b27ff5b6c1893c8771&scene=21#wechat_redirect) 132 | + [SHA系列算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191642&idx=1&sn=47c6340a6664af2f62e6c580528ea6f6&chksm=8c990f00bbee861698daa51b0622e581b3279c0759a16330fe538de745cb6abed8288b0bd778&scene=21#wechat_redirect) 133 | + [MD5算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191503&idx=1&sn=b18bd0458bf884bcb5d01f1cf2ca8301&chksm=8c990f95bbee8683fcfa9e972fd887cb1e50328ab4d8bd1f6a68ea90de6c67f46e50847e36fb&scene=21#wechat_redirect) 134 | + [如何破解MD5算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191598&idx=1&sn=13ef6b99b8a9a25f18b839df13cd6e31&chksm=8c990f74bbee866249af65e56a73f74b90a85b8497b9eea097f813a0b398a44fe0b8320967cd&scene=21#wechat_redirect) 135 | + [Base64算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191459&idx=1&sn=6e7d82dabe9c4a26b55f86f502edac03&chksm=8c990ff9bbee86ef7d6eee8a92430ff529b57e2f8720d439b7a4fb83b9ba75cd91395509a239&scene=21#wechat_redirect) 136 | 137 | # 二.操作系统(Operating System) 138 | 139 | ## 操作系统基础知识(基于CSAPP) 140 | 141 | ### 基础知识 142 | 143 | + [【不周山之读薄 CSAPP】零 系列概览](https://wdxtub.com/2016/04/16/thin-csapp-0/) 144 | + [壹 数据表示 - 不同的数据是如何存储与表示的](http://wdxtub.com/2016/04/16/thin-csapp-1/) 145 | + [贰 机器指令与程序优化 - 控制流、过程调用、跳转](http://wdxtub.com/2016/04/16/thin-csapp-2/) 146 | + [叁 内存与缓存 - 内存层级与缓存机制](http://wdxtub.com/2016/04/16/thin-csapp-3/) 147 | + [肆 链接 - 不同的代码如何协同](http://wdxtub.com/2016/04/16/thin-csapp-4/) 148 | + [伍 异常控制流 - 不同进程间的切换与沟通](http://wdxtub.com/2016/04/16/thin-csapp-5/) 149 | + [陆 系统输入输出 - 怎么把不同的内容发送到不同的地方](http://wdxtub.com/2016/04/16/thin-csapp-6/) 150 | + [柒 虚拟内存与动态内存分配 - 现代计算机中内存的奥秘](http://wdxtub.com/2016/04/16/thin-csapp-7/) 151 | + [捌 网络编程 - 从最原始套接字彻底理解网络编程](http://wdxtub.com/2016/04/16/thin-csapp-8/) 152 | + [玖 并行与同步 - 协同工作中最重要的两个问题](http://wdxtub.com/2016/04/16/thin-csapp-9/) 153 | 154 | ### 实验部分 155 | 156 | + [实验概览](http://wdxtub.com/2016/04/16/thick-csapp-lab-0/) 157 | + [I Data Lab - 位操作,数据表示](http://wdxtub.com/2016/04/16/thick-csapp-lab-1/) 158 | + [II Bomb Lab - 汇编,栈帧与 gdb](http://wdxtub.com/2016/04/16/thick-csapp-lab-2/) 159 | + [III Attack Lab - 漏洞是如何被攻击的](http://wdxtub.com/2016/04/16/thick-csapp-lab-3/) 160 | + [IV Cache Lab - 实现一个缓存系统来加速计算](http://wdxtub.com/2016/04/16/thick-csapp-lab-4/) 161 | + [V Shell Lab - 实现一个 shell](http://wdxtub.com/2016/04/16/thick-csapp-lab-5/) 162 | + [VI Malloc Lab - 实现一个动态内存分配](http://wdxtub.com/2016/04/16/thick-csapp-lab-6/) 163 | + [VII Proxy Lab - 实现一个多线程带缓存的代理服务器](http://wdxtub.com/2016/04/16/thick-csapp-lab-7/) 164 | 165 | 166 | 167 | ## Linux 168 | 169 | #### Linux基础 170 | 171 | + [《The Linux Command Line》](https://book.douban.com/subject/6806862/) 172 | + [对应的中文在线版](http://billie66.github.io/TLCL/book/) 173 | 174 | + [实验楼:Linux基础](https://www.shiyanlou.com/courses/1) 175 | + [Linux命令实例练习](https://www.shiyanlou.com/courses/68) 176 | + [《鸟哥的Linux私房菜在线阅读》](http://linux.vbird.org/linux_basic/) 177 | + [Linux 命令大全](http://www.runoob.com/linux/linux-command-manual.html) 178 | 179 | #### Linux shell 180 | 181 | + [实验楼:高级 bash 脚本编程指南](https://www.shiyanlou.com/courses/944) 182 | + [正则表达式基础](https://www.shiyanlou.com/courses/90) 183 | + [《Linux Shell脚本攻略》](https://book.douban.com/subject/6889456/) 184 | 185 | 186 | #### Vim 187 | 188 | + [Vim编辑器基本使用](https://www.shiyanlou.com/courses/2) 189 | + [陈皓:简明 VIM 练级攻略](https://coolshell.cn/articles/5426.html) 190 | 191 | #### Linux内核 192 | 193 | # 三.数据库(Database) 194 | 195 | ## 数据库理论 196 | 197 | #### 事务 198 | 199 | + [『浅入深出』MySQL 中事务的实现](https://draveness.me/mysql-transaction) 200 | + [彻底理解数据库事务](http://www.hollischuang.com/archives/898) 201 | + [深入分析事务的隔离级别](http://www.hollischuang.com/archives/943) 202 | + [知乎:数据库事务原子性、一致性是怎样实现的?](https://www.zhihu.com/question/30272728) 203 | + [知乎:乐观锁和 MVCC 的区别?](https://www.zhihu.com/question/27876575) 204 | + [浅谈数据库并发控制 - 锁和 MVCC](https://draveness.me/database-concurrency-control) 205 | + [InnoDB存储引擎MVCC实现原理](https://liuzhengyang.github.io/2017/04/18/innodb-mvcc/) 206 | 207 | #### 范式 208 | 209 | + [解释一下关系数据库的第一第二第三范式?](https://www.zhihu.com/question/24696366/answer/29189700) 210 | 211 | 212 | 213 | ## MySQL 214 | 215 | + [MySQL](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/MySQL.md) 216 | 217 | #### MySQL索引 218 | 219 | + [MYSQL-索引](https://segmentfault.com/a/1190000003072424) 220 | + [MySQL索引背后的数据结构及算法原理](http://blog.codinglabs.org/articles/theory-of-mysql-index.html) 221 | 222 | #### MySQL优化 223 | 224 | + [MySQL 对于千万级的大表要怎么优化?](https://www.zhihu.com/question/19719997) 225 | + [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) 226 | + [MySQL 性能优化神器 Explain 使用分析](https://segmentfault.com/a/1190000008131735) 227 | + [视频:性能优化之MySQL优化](https://www.imooc.com/learn/194) 228 | 229 | #### MySQL的锁 230 | 231 | + [对mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解](https://blog.csdn.net/puhaiyang/article/details/72284702) 232 | + [数据库的锁机制](http://www.hollischuang.com/archives/909) 233 | + [深入理解乐观锁与悲观锁](http://www.hollischuang.com/archives/934) 234 | 235 | 236 | 237 | ## Redis 238 | 239 | 关于Redis的学习,命令与基础知识部分,Redis官网其实蛮详细了。 240 | 241 | + [英文官网](https://redis.io/) 242 | 243 | + [Redis中文网](http://www.redis.cn/) 244 | 245 | #### 书籍推荐: 246 | 247 | + [《Redis开发与运维》](https://book.douban.com/subject/26971561/) 248 | 249 | 这本书主要是关于基础知识的讲解,比较全面,其实还有一本[《Redis实战》](https://book.douban.com/subject/26612779/),我翻了翻,没怎么细看。 250 | 251 | + [《Redis设计与实现》](https://book.douban.com/subject/25900156/) 252 | 253 | Redis底层是用C语言写的,这本书剖析了Redis的内部源码实现,配图也很多,有很多经典巧妙的数据结构,我觉得是对算法学习很好的补充。 254 | 255 | + [《Redis 深度历险:核心原理与应用实践》](https://book.douban.com/subject/30386804/) 256 | 257 | 这本书有对应的小册,在掘金官网上可以购买,我只看了小册,不过书和小册应该基本一致。 258 | 259 | #### 基础知识 260 | 261 | + [字符串(strings)](http://www.redis.cn/topics/data-types-intro.html#strings) 262 | + [散列(hashes)](http://www.redis.cn/topics/data-types-intro.html#hashes) 263 | + [列表(lists)](http://www.redis.cn/topics/data-types-intro.html#lists) 264 | + [集合(sets)](http://www.redis.cn/topics/data-types-intro.html#sets) 265 | + [有序集合(sorted sets)](http://www.redis.cn/topics/data-types-intro.html#sorted-sets) 266 | + [bitmaps](http://www.redis.cn/topics/data-types-intro.html#bitmaps) 267 | + [hyperloglogs](http://www.redis.cn/topics/data-types-intro.html#hyperloglogs) 268 | + [地理空间(geospatial)](http://www.redis.cn/commands/geoadd.html) 269 | + [复制(replication)](http://www.redis.cn/topics/replication.html) 270 | + [LUA脚本(Lua scripting)](http://www.redis.cn/commands/eval.html) 271 | + [LRU驱动事件(LRU eviction)](http://www.redis.cn/topics/lru-cache.html) 272 | + [事务(transactions)](http://www.redis.cn/topics/transactions.html) 273 | + [磁盘持久化(persistence)](http://www.redis.cn/topics/persistence.html) 274 | + [Redis哨兵(Sentinel)](http://www.redis.cn/topics/sentinel.html) 275 | + [分区(Cluster)](http://www.redis.cn/topics/cluster-tutorial.html) 276 | 277 | #### 底层源码解析 278 | 279 | + [合集](http://wiki.jikexueyuan.com/project/redis/) 280 | 281 | + [Redis源码解析](https://redissrc.readthedocs.io/en/latest/index.html) 282 | 283 | #### 分布式锁 284 | 285 | + [点我达技术:Redis分布式锁进化史](http://tech.dianwoda.com/2018/04/11/redisfen-bu-shi-suo-jin-hua-shi/) 286 | 287 | #### 缓存 288 | 289 | + [美团技术团队:缓存那些事](https://tech.meituan.com/cache_about.html) 290 | 291 | 292 | 293 | # 四.算法(Algorithm) 294 | 295 | #### 排序算法 296 | 297 | + [常见排序算法及对应的时间复杂度和空间复杂度](http://www.ganecheng.tech/blog/52652705.html) 298 | + [常用的八种排序算法Java代码实现](https://www.jianshu.com/p/5e171281a387) 299 | + [图解排序算法(一)之3种简单排序(选择,冒泡,直接插入)](https://www.cnblogs.com/chengxiao/p/6103002.html) 300 | + [图解排序算法(二)之希尔排序](http://www.cnblogs.com/chengxiao/p/6104371.html) 301 | + [图解排序算法(三)之堆排序](http://www.cnblogs.com/chengxiao/p/6129630.html) 302 | + [图解排序算法(四)之归并排序](https://www.cnblogs.com/chengxiao/p/6194356.html) 303 | + [图解排序算法(五)之快速排序——三数取中法](http://www.cnblogs.com/chengxiao/p/6262208.html) 304 | 305 | #### 递归与尾递归 306 | 307 | + [知乎:什么是尾递归?](https://www.zhihu.com/question/20761771) 308 | 309 | #### 字典树(Trie) 310 | 311 | + [从Trie树(字典树)谈到后缀树](https://blog.csdn.net/v_july_v/article/details/6897097) 312 | + [Trie 三兄弟——标准 Trie、压缩 Trie、后缀 Trie](https://www.cnblogs.com/youxin/p/3301411.html) 313 | 314 | #### 红黑树 315 | 316 | + [红黑树](https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/03.01.md) 317 | + [美团技术团队:红黑树深入剖析及Java实现](https://tech.meituan.com/redblack_tree.html) 318 | 319 | #### KMP 320 | 321 | + [为什么java String.contains 没有使用类似KMP字符串匹配算法进行优化?](https://www.zhihu.com/question/27852656) 322 | 323 | #### 布隆过滤器(Bloom Filter) 324 | 325 | + [吴军:数学之美系列二十一 - 布隆过滤器(Bloom Filter)](https://china.googleblog.com/2007/07/bloom-filter_7469.html) 326 | + [使用BloomFilter布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重](https://blog.csdn.net/tianyaleixiaowu/article/details/74721877) 327 | + [布隆过滤器(Bloom Filter)的原理和实现](https://www.cnblogs.com/cpselvis/p/6265825.html) 328 | 329 | #### 一致性哈希 330 | 331 | + [一致性哈希算法的理解与实践](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/) 332 | + [一致性HASH算法详解](https://www.jianshu.com/p/e8fb89bb3a61) 333 | 334 | #### JDK里的排序算法 335 | 336 | + [Java提供的排序算法是怎么实现的?](https://blog.csdn.net/xlgen157387/article/details/79863301) 337 | + [排序算法在jdk源码中的应用](https://blog.csdn.net/java_student09/article/details/52235278) 338 | + [java.util.Arrays的排序研究](http://hxraid.iteye.com/blog/665095) 339 | 340 | #### Huffman 编码 341 | 342 | + [霍夫曼编码](https://zh.wikipedia.org/wiki/%E9%9C%8D%E5%A4%AB%E6%9B%BC%E7%BC%96%E7%A0%81) 343 | + [HUFFMAN 编码压缩算法](https://coolshell.cn/articles/7459.html) 344 | 345 | #### 并查集 346 | 347 | + [并查集(Union-Find)算法介绍](https://blog.csdn.net/dm_vincent/article/details/7655764) 348 | + [维基百科:并查集](https://zh.wikipedia.org/wiki/%E5%B9%B6%E6%9F%A5%E9%9B%86) 349 | 350 | #### 动态规划 351 | 352 | + [知乎:什么是动态规划?动态规划的意义是什么?](https://www.zhihu.com/question/23995189) 353 | + [漫画:什么是动态规划?](https://juejin.im/post/5a29d52cf265da43333e4da7) 354 | 355 | #### 贪心 356 | 357 | + 358 | 359 | # 五.Java基础(Basic) 360 | 361 | + [Java基础](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%9F%BA%E7%A1%80.md) 362 | + [美团技术团队:深入解析String的intern()方法](https://tech.meituan.com/in_depth_understanding_string_intern.html) 363 | + [Java本地方法](https://blog.csdn.net/wi__wi/article/details/51085907) 364 | + [Java中的Switch对整型、字符型、字符串型的具体实现细节](http://www.hollischuang.com/archives/61) 365 | 366 | #### Java枚举 367 | 368 | + [深入理解Java枚举类型(enum)](https://blog.csdn.net/javazejian/article/details/71333103) 369 | 370 | #### Java异常 371 | 372 | + [Java 异常处理](http://www.runoob.com/java/java-exceptions.html) 373 | + [throw和throws有什么区别?](https://www.nowcoder.com/questionTerminal/b769424fb8bf49d9bff97353c75d6f06) 374 | + [Java 中的异常和处理详解](http://www.importnew.com/26613.html) 375 | + [知乎:如何优雅地处理异常?](https://www.zhihu.com/question/28254987) 376 | 377 | 378 | #### 序列化与反序列化 379 | 380 | + [美团技术团队:序列化和反序列化](https://tech.meituan.com/serialization_vs_deserialization.html) 381 | 382 | #### 反射 383 | 384 | + [知乎:学习java应该如何理解反射?](https://www.zhihu.com/question/24304289) 385 | + [深入解析Java反射(1) - 基础](https://www.sczyh30.com/posts/Java/java-reflection-1/#) 386 | + [深入解析Java反射(2) - invoke方法](https://www.sczyh30.com/posts/Java/java-reflection-2/) 387 | + [并发编程网:Java Reflection教程 ](http://ifeve.com/java-reflection/) 388 | + [反射——Java高级开发必须懂的](https://www.imooc.com/learn/199) 389 | 390 | #### 注解 391 | 392 | + [全面解析Java注解](http://www.imooc.com/learn/456) 393 | + [并发编程网:Java注解教程及自定义注解](http://ifeve.com/java-annotations/) 394 | 395 | 396 | #### String、StringBuilder和StringBuffer 397 | 398 | + [在java中String类为什么要设计成final? - 知乎](https://www.zhihu.com/question/31345592) 399 | + [Java StringBuilder和StringBuffer源码分析](https://segmentfault.com/a/1190000004261063) 400 | + Stack Overflow: [String, StringBuffer, and StringBuilder](https://stackoverflow.com/questions/2971315/string-stringbuffer-and-stringbuilder) 401 | 402 | #### hashCode()和equals() 403 | 404 | + [Java hashCode() 和 equals()的若干问题解答](https://www.cnblogs.com/skywang12345/p/3324958.html) 405 | + [Java提高篇——equals()与hashCode()方法详解](https://www.cnblogs.com/Qian123/p/5703507.html) 406 | + [面试官爱问的equals与hashCode](https://juejin.im/post/5a4379d4f265da432003874c) 407 | 408 | 409 | #### Java IO 410 | 411 | + [Java IO教程](http://ifeve.com/java-io/) 412 | + [文件传输基础——Java IO流](https://www.imooc.com/learn/123) 413 | + [Java NIO 系列教程](http://ifeve.com/java-nio-all/) 414 | + [以Java的视角来聊聊BIO、NIO与AIO的区别?](https://juejin.im/entry/598da7d16fb9a03c42431ed3) 415 | 416 | #### Java容器 ==>> 推荐阅读[《分布式Java应用 基础与实践》](https://book.douban.com/subject/4848587/)第四章 417 | 418 | + [Java集合学习指南](http://wiki.jikexueyuan.com/project/java-collection/) 419 | 420 | + [java 集合类知识汇总](https://mp.weixin.qq.com/s/2P-wEvmig-M2Ehde1REGjQ) 421 | 422 | + [Java 容器](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%AE%B9%E5%99%A8.md#arraylist) 423 | 424 | + [ArrayList vs. LinkedList vs. Vector](http://www.importnew.com/8782.html) 425 | 426 | + [ArrayList、LinkedList、Vector、HashSet、Treeset、HashMap、TreeMap的区别和适用场景](http://bs-yg.iteye.com/blog/2253605) 427 | 428 | + [Java Collections Framework - ArrayList](https://www.jianshu.com/p/4b7aa8a022ba) 429 | 430 | + **HashMap与ConcurrentHashMap** 431 | 432 | + [Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析](https://javadoop.com/post/hashmap) 433 | 434 | + [占小狼:深入浅出ConcurrentHashMap1.8](https://www.jianshu.com/p/c0642afe03e0) 435 | + [占小狼:谈谈ConcurrentHashMap1.7和1.8的不同实现](https://www.jianshu.com/p/e694f1e868ec) 436 | + [占小狼:ConcurrentHashMap的红黑树实现分析](https://www.jianshu.com/p/23b84ba9a498) 437 | + [占小狼:老生常谈,HashMap的死循环](https://www.jianshu.com/p/1e9cf0ac07f4) 438 | + [HashMap与ConcurrentHashMap在JDK1.7和JDK1.8中的实现](https://crossoverjie.top/2018/07/23/java-senior/ConcurrentHashMap/) 439 | + [美团技术团队:Java 8系列之重新认识HashMap](https://tech.meituan.com/java_hashmap.html) 440 | 441 | + **优先级队列** 442 | + [PriorityQueue](https://github.com/CarpenterLee/JCFInternals/blob/master/markdown/8-PriorityQueue.md) 443 | + [优先级队列是一种什么样的数据结构](http://www.importnew.com/6510.html) 444 | + [堆排序和 PriorityQueue 源码解析](https://zhuanlan.zhihu.com/p/25843530) 445 | + [基于堆实现的优先级队列:PriorityQueue 解决 Top K 问题](https://my.oschina.net/leejun2005/blog/135085) 446 | + [jdk源码分析PriorityQueue](http://zswlib.iteye.com/blog/2334463)] 447 | 448 | #### Java 8 ==>> 推荐阅读《Java 8实战》与《Java 8函数式编程》 449 | 450 | + [What's New in JDK 8](http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html) 451 | + [IBM: Java 8 新特性概述](https://www.ibm.com/developerworks/cn/java/j-lo-jdk8newfeature/index.html) 452 | + [Java 8 特性 – 终极手册](http://www.importnew.com/19345.html) 453 | + [IBM:Java 8 中的 Streams API 详解](https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/) 454 | 455 | #### 值得思考的问题: 456 | 457 | + [Java 8接口上的default method设计目的是什么?]( 458 | https://www.zhihu.com/question/41166418/answer/139494009) 459 | 460 | # 六.Java并发(Concurrency) 461 | 462 | #### 推荐书籍: 463 | 464 | + [《Java并发编程的艺术》](https://book.douban.com/subject/26591326/) 465 | 466 | z这本书比《Java并发编程实战》更适合入门一些。作者还创办了并发编程网,里面有很多值得读的文章。 467 | 468 | + [《Java并发编程实战》](https://book.douban.com/subject/10484692/) 469 | 470 | jdk并发包作者写的书,书很好,但翻译为人诟病很久。 471 | 472 | + [《实战Java高并发程序设计》](https://book.douban.com/subject/26663605/) 473 | 474 | 在图书馆瞎逛的时候看到的一本书,翻了翻,出乎意料地不错,涉及到一些Java8函数式编程的知识。 475 | 476 | #### 并发合集 477 | 478 | + [深入理解java内存模型系列文章](http://ifeve.com/java-memory-model-0/) 479 | + [深入浅出 Java Concurrency](http://www.blogjava.net/xylz/archive/2010/07/08/325587.html) 480 | + [死磕Java并发](https://www.jianshu.com/nb/12860760) 481 | + [Java 并发](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%B9%B6%E5%8F%91.md) 482 | + [Java 并发知识合集](https://github.com/CL0610/Java-concurrency) 483 | 484 | #### Java并发工具类之LongAdder 485 | 486 | + [Java并发工具类之LongAdder原理总结](https://github.com/aCoder2013/blog/issues/22) 487 | + [Java8 Striped64 和 LongAdder](http://ifeve.com/java8-striped64-and-longadder/) 488 | 489 | #### 线程池 490 | 491 | + [深入分析java线程池的实现原理](https://www.jianshu.com/p/87bff5cc8d8c) 492 | + [线程池的工作原理与源码解读](https://www.cnblogs.com/qingquanzi/p/8146638.html) 493 | + [Java并发编程:线程池的使用](https://www.cnblogs.com/dolphin0520/p/3932921.html) 494 | + [聊聊并发(三)——JAVA线程池的分析和使用](http://www.infoq.com/cn/articles/java-threadPool) 495 | 496 | #### 阻塞队列 497 | 498 | + [聊聊并发(七)——Java中的阻塞队列](http://www.infoq.com/cn/articles/java-blocking-queue?utm_source=infoq&utm_campaign=user_page&utm_medium=link) 499 | + [【死磕Java并发】-----J.U.C之阻塞队列:BlockingQueue总结](https://www.jianshu.com/p/4af8ab00c587) 500 | + [【死磕Java并发】-----J.U.C之阻塞队列:ArrayBlockingQueue](https://www.jianshu.com/p/0a0b58934401) 501 | + [【死磕Java并发】-----J.U.C之阻塞队列:LinkedBlockingDeque](https://www.jianshu.com/p/f1b2c053c103) 502 | + [【死磕Java并发】-----J.U.C之阻塞队列:PriorityBlockingQueue](https://www.jianshu.com/p/43954715aa28) 503 | + [【死磕Java并发】-----J.U.C之阻塞队列:SynchronousQueue](https://www.jianshu.com/p/9d2c706e45b7) 504 | + [【死磕Java并发】-----J.U.C之阻塞队列:LinkedTransferQueue](https://www.jianshu.com/p/bd708cb3ea91) 505 | 506 | #### synchronized和lock 507 | 508 | + [【死磕Java并发】-----深入分析synchronized的实现原理](https://www.jianshu.com/p/fe49b156b1a6) 509 | + [深入浅出synchronized](https://www.jianshu.com/p/19f861ab749e) 510 | + [Lock与synchronized 的区别](http://houlinyan.iteye.com/blog/1112535) 511 | + [并发编程的锁机制:synchronized和lock](https://juejin.im/post/5a43ad786fb9a0450909cb5f) 512 | 513 | #### CAS 514 | 515 | + [面试必问的CAS,要多了解](https://www.jianshu.com/p/24ffe531e9ee) 516 | + [乐观锁的一种实现方式——CAS](http://www.hollischuang.com/archives/1537) 517 | + [【死磕Java并发】-----J.U.C之深入分析CAS](https://www.jianshu.com/p/61c90bd79d66) 518 | 519 | #### ThreadLocal 520 | 521 | + [深入浅出ThreadLocal](https://www.jianshu.com/p/33c5579ef44f) 522 | + [Java面试必问,ThreadLocal终极篇](https://www.jianshu.com/p/377bb840802f) 523 | + [【死磕Java并发】—–深入分析ThreadLocal](http://cmsblogs.com/?p=2442) 524 | 525 | #### Java中的锁 526 | 527 | + [Java中的锁](http://www.importnew.com/19472.html) 528 | + [【死磕Java并发】-----J.U.C之重入锁:ReentrantLock](https://www.jianshu.com/p/508412a6ffdc) 529 | + [【死磕Java并发】-----J.U.C之读写锁:ReentrantReadWriteLock](https://www.jianshu.com/p/d47fe1ec1bb3) 530 | 531 | #### Java秒杀 532 | 533 | + [设计一个秒杀系统](https://github.com/crossoverJie/JCSprout/blob/master/MD/Spike.md) 534 | + [秒杀架构实践](https://crossoverjie.top/2018/05/07/ssm/SSM18-seconds-kill/) 535 | + [限流算法](https://github.com/crossoverJie/JCSprout/blob/master/MD/Limiting.md) 536 | + [知乎:秒杀系统设计](https://www.zhihu.com/question/54895548) 537 | 538 | 539 | 540 | # 七.Java虚拟机(JVM) 541 | 542 | #### 推荐书籍 543 | 544 | + [《深入理解Java虚拟机》](https://book.douban.com/subject/24722612/) 545 | 546 | 学过JVM的应该都看过这本书,比较详细,但这本书第二版是2013年出的,HotSpot在具体实现上有了一些变化,比如说内存结构Perm区的继任者Metaspace,以及一些新的垃圾收集器也出现了,这部分内容需要再自己选择性地去补充学习。 547 | 548 | + [《实战Java虚拟机》](https://book.douban.com/subject/26354292/) 549 | 550 | 相比较上一本,这一本书感觉更基础,两者可以相互补充。 551 | 552 | #### 合集 553 | 554 | + [JVM一览](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E8%99%9A%E6%8B%9F%E6%9C%BA.md) 555 | + [Jvm知识汇总篇](https://zhuanlan.zhihu.com/p/34426768) 556 | 557 | #### JVM内存结构 558 | 559 | + [JAVA8:永久代(PermGen)和元空间(Metaspace)](https://www.cnblogs.com/paddix/p/5309550.html) 560 | 561 | + [JVM内存结构 VS Java内存模型 VS Java对象模型](https://blog.csdn.net/hollis_chuang/article/details/80839410) 562 | + [JVM内存的那些事](https://www.jianshu.com/p/eaef248b5a2c) 563 | 564 | #### 垃圾收集(GC) 565 | 566 | + [深入理解 java 垃圾回收机制](https://www.cnblogs.com/sunniest/p/4575144.html) 567 | + [不同的垃圾回收器的比较](http://www.importnew.com/15869.html) 568 | + [了解CMS(Concurrent Mark-Sweep)垃圾回收器](http://www.importnew.com/2782.html) 569 | + [并发编程网:深入理解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/) 570 | + [占小狼:G1垃圾收集器介绍](https://www.jianshu.com/p/0f1f5adffdc1) 571 | + [占小狼:Java GC的那些事(1)](https://www.jianshu.com/p/6d1cbe38a54b) 572 | + [占小狼:Java GC的那些事(2)](https://www.jianshu.com/p/94989b278114) 573 | + [Java GC系列(1):Java垃圾回收简介](http://www.importnew.com/13504.html) 574 | + [Java GC系列(2):Java垃圾回收是如何工作的?](http://www.importnew.com/13493.html) 575 | + [Java GC系列(3):垃圾回收器种类](http://www.importnew.com/13827.html) 576 | + [Java GC系列(4):垃圾回收监视和分析](http://www.importnew.com/13838.html) 577 | + [知乎:怎么在面试时回答Java垃圾回收机制(GC)相关问题?](https://www.zhihu.com/question/35164211) 578 | + [美团技术团队:Java Hotspot G1 GC的一些关键技术](https://tech.meituan.com/g1.html) 579 | 580 | #### 类加载 581 | 582 | + [深入探讨 Java 类加载器](https://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html) 583 | + [深入分析Java ClassLoader原理](http://www.importnew.com/15362.html) 584 | 585 | #### 性能调优 586 | 587 | + [并发编程网:JVM实用参数系列 ](http://ifeve.com/useful-jvm-flags/) 588 | + [美团技术团队:从实际案例聊聊Java应用的GC优化](https://tech.meituan.com/jvm_optimize.html) 589 | 590 | 591 | 592 | # 八.架构与设计 593 | 594 | ## 设计模式 595 | 596 | + [设计模式合集](http://wiki.jikexueyuan.com/project/java-design-pattern-principle/) 597 | 598 | ## 系统设计 599 | 600 | + [系统设计面试之前需要知道的八件事](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd1.html) 601 | + 设计Twitter 602 | + [如何设计 Twitter(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd2.html) 603 | + [如何设计 Twitter(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd3.html) 604 | + [创建照片分享应用](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd4.html) 605 | + [创建短网址系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd5.html) 606 | + [如何设计 Google Docs](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd6.html) 607 | + 设计新闻推送系统 608 | + [设计新闻推送系统(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd7.html) 609 | + [设计新闻推送系统(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd8.html) 610 | + [设计 Facebook 聊天功能](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd9.html) 611 | + [如何为 Twitter 设计趋势算法](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd10.html) 612 | + [设计缓存系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd11.html) 613 | + [设计推荐系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd12.html) 614 | + [随机 ID 生成器](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd13.html) 615 | + 设计键值存储 616 | + [设计键值存储(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd14.html) 617 | + [设计键值存储(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd15.html) 618 | + [构建网页爬虫](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd16.html) 619 | + 设计垃圾回收系统 620 | + [设计垃圾回收系统(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd17.html) 621 | + [设计垃圾回收系统(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd18.html) 622 | + 设计电商网站 623 | + [设计电商网站(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd19.html) 624 | + [设计电商网站(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd20.html) 625 | + [设计点击计数器](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd21.html) 626 | + 设计 Youtube 627 | + [设计 Youtube(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd22.html) 628 | + [设计 Youtube(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd23.html) 629 | 630 | # 九.框架(Framework) 631 | 632 | ## Spring 633 | 634 | + [Spring 框架的设计理念与设计模式分析](https://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/index.html) 635 | 636 | #### IoC 637 | 638 | + [知乎:Spring IOC原理总结](https://zhuanlan.zhihu.com/p/29344811) 639 | + [知乎:Spring IoC有什么好处呢?](https://www.zhihu.com/question/23277575) 640 | + BeanFactory、ApplicationContext以及WebApplicationContext 641 | + BeanFactory和ApplicationContext中各自Bean的生命周期 642 | + Bean的注入方式和作用域 643 | 644 | #### AOP 645 | 646 | + [Spring AOP 实现原理与 CGLIB 应用](https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/index.html) 647 | + [探秘Spring AOP](https://www.imooc.com/learn/869) 648 | + **动态代理** 649 | + [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/) 650 | + [Java Proxy 和 CGLIB 动态代理原理](http://www.importnew.com/27772.html) 651 | 652 | #### 常用知识点 653 | 654 | + [Spring常见面试题](https://www.w3cschool.cn/fisug/) 655 | + [知乎:@Autowired和@Resource的区别是什么?](https://www.zhihu.com/question/39356740) 656 | + StringRedisTemplate 类 657 | + [Spring Doc: Class StringRedisTemplate](https://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/core/StringRedisTemplate.html) 658 | + [如何使用RedisTemplate访问Redis数据结构](https://www.jianshu.com/p/7bf5dc61ca06) 659 | + **RestTemplate类** 660 | + [Spring Doc: Class RestTemplate](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html) 661 | + [A Guide to the RestTemplate | Baeldung](https://www.baeldung.com/rest-template) 662 | + [Spring RestTemplate 中几种常见的请求方式](https://blog.csdn.net/u012702547/article/details/77917939) 663 | + **EntityManager** 664 | + [EntityManager相关核心概念](https://blog.csdn.net/dm_vincent/article/details/52615532) 665 | + [EntityManager相关](https://blog.csdn.net/u010837612/article/details/47666131) 666 | 667 | #### Spring源码 668 | 669 | + [死磕Spring](http://cmsblogs.com/?cat=206) 670 | + [Spring源码阅读](https://github.com/seaswalker/Spring) 671 | + [Spring 实现原理与源码解析系统](http://www.iocoder.cn/Spring/good-collection/)] 672 | 673 | ## Spring Boot 674 | 675 | + [@SpringBootApplication(源码分析与启动流程)](http://tengj.top/2017/03/09/springboot3/) ==>> 推荐阅读《Spring Boot揭秘》第三章 676 | 677 | + **参考视频教程** 678 | + [SpringBoot开发常用技术整合](https://www.imooc.com/learn/956) 679 | + [Spring Boot聚合工程](https://www.imooc.com/learn/933) 680 | + [Spring Boot热部署](https://www.imooc.com/learn/915) 681 | + **参考文档以及开原作品索引** 682 | + [Spring Boot 中文索引](http://springboot.fun/) 683 | 684 | #### Thymeleaf 685 | 686 | + [Thymeleaf-Reference-Guide中文翻译](https://github.com/jack80342/Thymeleaf-Reference-Guide) 687 | 688 | ## Spring MVC 689 | 690 | + [SpringMVC深度探险系列](http://www.iteye.com/blogs/subjects/springmvc-explore) 691 | 692 | #### **Servlet** 693 | 694 | + [知乎:servlet的本质是什么,它是如何工作的?](https://www.zhihu.com/question/21416727) 695 | + [许令波:Servlet 工作原理解析](https://www.ibm.com/developerworks/cn/java/j-lo-servlet/index.html) 696 | + [Servlet生命周期与工作原理](https://www.cnblogs.com/cuiliang/archive/2011/10/21/2220671.html) 697 | 698 | #### **redirect和forward** 699 | 700 | + [知乎:web开发过程中redirect和forward有什么区别?](https://www.zhihu.com/question/38013677) 701 | + [请求转发(Forward)和重定向(Redirect)的区别](https://www.cnblogs.com/Qian123/p/5345527.html) 702 | 703 | #### Spring MVC常用注解 704 | 705 | + [springmvc常用注解标签详解](https://www.cnblogs.com/leskang/p/5445698.html) 706 | 707 | + [Spring MVC 的常用注解](https://blog.csdn.net/qian_ch/article/details/73826663) 708 | 709 | #### 面试相关 710 | 711 | + [SpringMVC面试题](https://www.w3cschool.cn/qgutf/) 712 | 713 | ## MyBatis 714 | 715 | + [MyBatis Reference Documentation](http://www.mybatis.org/mybatis-3/index.html) ===> [中文文档](http://www.mybatis.org/mybatis-3/zh/index.html) 716 | + [美团技术团队:聊聊MyBatis缓存机制](https://tech.meituan.com/mybatis_cache.html) 717 | + [动态SQL](http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html) 718 | + [MyBatis常见面试题](https://www.w3cschool.cn/kzsow/) 719 | + MyBatis中的#与$的区别 720 | 721 | ## Spring Cloud 722 | 723 | + **参考文档以及开源作品索引** 724 | + [Spring Cloud 中文索引](http://springcloud.fun/) 725 | 726 | # 十.中间件 727 | 728 | ## 1.Web Server 729 | 730 | ### Tomcat 731 | 732 | ### Nginx 733 | 734 | ## 2.消息队列 735 | 736 | ### RabbitMQ 737 | 738 | ### RocketMQ 739 | 740 | ### kafka 741 | 742 | ### ActiveMQ 743 | 744 | # 十一.分布式 745 | 746 | ## 1.分布式基础理论 747 | 748 | + [美团技术团队:分布式系统互斥性与幂等性问题的分析与解决](https://tech.meituan.com/distributed_system_mutually_exclusive_idempotence_cerberus_gtis.html) 749 | + [分布式基础理论](https://github.com/CyC2018/CS-Notes/blob/master/notes/%E5%88%86%E5%B8%83%E5%BC%8F.md) 750 | + **CAP理论:** 751 | + 论文:[Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web](https://users.ece.cmu.edu/~adrian/731-sp04/readings/GL-cap.pdf) 752 | + [CAP 定理的含义](http://www.ruanyifeng.com/blog/2018/07/cap.html) 753 | + [分布式理论(一) - CAP定理](https://juejin.im/post/5b26634b6fb9a00e765e75d1) 754 | + **BASE理论:** 755 | + [分布式理论(二) - BASE理论](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2663fcf265da59a401e6f8) 756 | + **2PC协议:** 757 | + [分布式理论(三) - 2PC协议](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664446fb9a00e4a53136e) 758 | + **3PC协议:** 759 | + [分布式理论(四) - 3PC协议](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b26648e5188257494641b9f) 760 | + **一致性算法Paxos:** 761 | + [分布式理论(五) - 一致性算法Paxos](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664bd51882574874d8a76) 762 | + **一致性协议Raft:** 763 | + [分布式理论(六) - 一致性协议Raft](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664e2f265da59584d8c90) 764 | + **分布式事务** 765 | + [事务相关基础知识](http://www.hollischuang.com/archives/tag/%E4%BA%8B%E5%8A%A1) 766 | + [分布式事务](http://tech.dianwoda.com/2018/09/27/fen-bu-shi-shi-wu/) 767 | + [IBM developerWorks : JTA 深度历险 - 原理与实现](https://www.ibm.com/developerworks/cn/java/j-lo-jta/index.html) 768 | + **happens-before** 769 | + 论文:[Time, Clocks, and the Ordering of Events in a Distributed System](https://lamport.azurewebsites.net/pubs/time-clocks.pdf) 770 | 771 | # 十二.搜索引擎 772 | 773 | ## Elasticsearch 774 | 775 | ## Apache Solr 776 | 777 | 778 | 779 | # 十二.其他 780 | 781 | ## IDEA 782 | 783 | + [IntelliJ-IDEA-Tutorial](https://github.com/judasn/IntelliJ-IDEA-Tutorial) 784 | + [IntelliJ IDEA神器使用技巧](https://www.imooc.com/learn/924) 785 | 786 | ## Postman 787 | 788 | + [Postman系列教程](https://www.jellythink.com/archives/category/tool-tutorials/postman) 789 | 790 | ## 压力测试 791 | 792 | + Apache bench 793 | + JMeter 794 | 795 | ## Swagger 796 | 797 | ## Git 798 | 799 | + [使用git提交到github,每次都要输入用户名和密码的解决方法](https://www.cnblogs.com/sky6862/p/7992736.html) 800 | + [GitHub & Git](https://www.nowcoder.com/courses/2) 801 | + [《Pro Git》](http://iissnan.com/progit/) 802 | 803 | ## 任务调度 804 | + [Java定时任务调度工具详解之Timer篇](https://www.imooc.com/learn/841) 805 | + [Java定时任务调度工具详解之Quartz篇](https://www.imooc.com/learn/846) 806 | + [Quartz官方文档中文版](https://www.w3cschool.cn/quartz_doc/) 807 | + [Quartz Documentation](http://www.quartz-scheduler.org/documentation/) 808 | 809 | ## Docker 810 | 811 | + [Docker入门教程](http://www.docker.org.cn/book/docker/what-is-docker-16.html) 812 | + [视频:Docker入门](https://www.imooc.com/learn/867) 813 | 814 | ## RESTful 815 | 816 | + [怎样用通俗的语言解释REST,以及RESTful?](https://www.zhihu.com/question/28557115) 817 | 818 | ## 杂 819 | 820 | + [美团技术团队:常见性能优化策略的总结](http://tech.meituan.com/performance_tunning.html) 821 | 822 | + [美团技术团队:性能优化模式](http://tech.meituan.com/performance_tuning_pattern.html) 823 | 824 | -------------------------------------------------------------------------------- /md/JVM.md: -------------------------------------------------------------------------------- 1 | # 七.Java虚拟机(JVM) 2 | 3 | #### 推荐书籍 4 | 5 | + [《深入理解Java虚拟机》](https://book.douban.com/subject/24722612/) 6 | 7 | 学过JVM的应该都看过这本书,比较详细,但这本书第二版是2013年出的,HotSpot在具体实现上有了一些变化,比如说内存结构Perm区的继任者Metaspace,以及一些新的垃圾收集器也出现了,这部分内容需要再自己选择性地去补充学习。 8 | 9 | + [《实战Java虚拟机》](https://book.douban.com/subject/26354292/) 10 | 11 | 相比较上一本,这一本书感觉更基础,两者可以相互补充。 12 | 13 | #### 合集 14 | 15 | + [JVM一览](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E8%99%9A%E6%8B%9F%E6%9C%BA.md) 16 | + [Jvm知识汇总篇](https://zhuanlan.zhihu.com/p/34426768) 17 | 18 | #### JVM内存结构 19 | 20 | + [JAVA8:永久代(PermGen)和元空间(Metaspace)](https://www.cnblogs.com/paddix/p/5309550.html) 21 | 22 | + [JVM内存结构 VS Java内存模型 VS Java对象模型](https://blog.csdn.net/hollis_chuang/article/details/80839410) 23 | + [JVM内存的那些事](https://www.jianshu.com/p/eaef248b5a2c) 24 | 25 | #### 垃圾收集(GC) 26 | 27 | + [深入理解 java 垃圾回收机制](https://www.cnblogs.com/sunniest/p/4575144.html) 28 | + [不同的垃圾回收器的比较](http://www.importnew.com/15869.html) 29 | + [了解CMS(Concurrent Mark-Sweep)垃圾回收器](http://www.importnew.com/2782.html) 30 | + [并发编程网:深入理解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/) 31 | + [占小狼:G1垃圾收集器介绍](https://www.jianshu.com/p/0f1f5adffdc1) 32 | + [占小狼:Java GC的那些事(1)](https://www.jianshu.com/p/6d1cbe38a54b) 33 | + [占小狼:Java GC的那些事(2)](https://www.jianshu.com/p/94989b278114) 34 | + [Java GC系列(1):Java垃圾回收简介](http://www.importnew.com/13504.html) 35 | + [Java GC系列(2):Java垃圾回收是如何工作的?](http://www.importnew.com/13493.html) 36 | + [Java GC系列(3):垃圾回收器种类](http://www.importnew.com/13827.html) 37 | + [Java GC系列(4):垃圾回收监视和分析](http://www.importnew.com/13838.html) 38 | + [知乎:怎么在面试时回答Java垃圾回收机制(GC)相关问题?](https://www.zhihu.com/question/35164211) 39 | + [美团技术团队:Java Hotspot G1 GC的一些关键技术](https://tech.meituan.com/g1.html) 40 | 41 | #### 类加载 42 | 43 | + [深入探讨 Java 类加载器](https://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html) 44 | + [深入分析Java ClassLoader原理](http://www.importnew.com/15362.html) 45 | 46 | #### 性能调优 47 | 48 | + [并发编程网:JVM实用参数系列 ](http://ifeve.com/useful-jvm-flags/) 49 | + [美团技术团队:从实际案例聊聊Java应用的GC优化](https://tech.meituan.com/jvm_optimize.html) 50 | + [JVM发生OOM的 8 种原因、及解决办法](https://mp.weixin.qq.com/s/HwsU282ZuXUFjq4Oi7Br_A) 51 | + [JVM 调优(学习篇)](https://mp.weixin.qq.com/s/Po45tsGSuoftUgWbJGlZOQ) 52 | 53 | -------------------------------------------------------------------------------- /md/Java基础.md: -------------------------------------------------------------------------------- 1 | # 五.Java基础(Basic) 2 | 3 | + [Java基础](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%9F%BA%E7%A1%80.md) 4 | + [美团技术团队:深入解析String的intern()方法](https://tech.meituan.com/in_depth_understanding_string_intern.html) 5 | + [Java本地方法](https://blog.csdn.net/wi__wi/article/details/51085907) 6 | + [Java中的Switch对整型、字符型、字符串型的具体实现细节](http://www.hollischuang.com/archives/61) 7 | 8 | #### Java枚举 9 | 10 | + [深入理解Java枚举类型(enum)](https://blog.csdn.net/javazejian/article/details/71333103) 11 | 12 | #### Java异常 13 | 14 | + [Java 异常处理](http://www.runoob.com/java/java-exceptions.html) 15 | + [Java 中的异常和处理详解](http://www.importnew.com/26613.html) 16 | + [知乎:如何优雅地处理异常?](https://www.zhihu.com/question/28254987) 17 | 18 | #### 序列化与反序列化 19 | 20 | + [美团技术团队:序列化和反序列化](https://tech.meituan.com/serialization_vs_deserialization.html) 21 | 22 | #### 反射 23 | 24 | + [知乎:学习java应该如何理解反射?](https://www.zhihu.com/question/24304289) 25 | + [深入解析Java反射(1) - 基础](https://www.sczyh30.com/posts/Java/java-reflection-1/#) 26 | + [深入解析Java反射(2) - invoke方法](https://www.sczyh30.com/posts/Java/java-reflection-2/) 27 | + [并发编程网:Java Reflection教程 ](http://ifeve.com/java-reflection/) 28 | + [反射——Java高级开发必须懂的](https://www.imooc.com/learn/199) 29 | 30 | #### 注解 31 | 32 | + [全面解析Java注解](http://www.imooc.com/learn/456) 33 | + [并发编程网:Java注解教程及自定义注解](http://ifeve.com/java-annotations/) 34 | 35 | #### String、StringBuilder和StringBuffer 36 | 37 | + [在java中String类为什么要设计成final? - 知乎](https://www.zhihu.com/question/31345592) 38 | + [Java StringBuilder和StringBuffer源码分析](https://segmentfault.com/a/1190000004261063) 39 | + Stack Overflow: [String, StringBuffer, and StringBuilder](https://stackoverflow.com/questions/2971315/string-stringbuffer-and-stringbuilder) 40 | 41 | #### hashCode()和equals() 42 | 43 | + [Java hashCode() 和 equals()的若干问题解答](https://www.cnblogs.com/skywang12345/p/3324958.html) 44 | + [Java提高篇——equals()与hashCode()方法详解](https://www.cnblogs.com/Qian123/p/5703507.html) 45 | + [面试官爱问的equals与hashCode](https://juejin.im/post/5a4379d4f265da432003874c) 46 | 47 | #### Java IO 48 | 49 | + [Java IO教程](http://ifeve.com/java-io/) 50 | + [文件传输基础——Java IO流](https://www.imooc.com/learn/123) 51 | + [Java NIO 系列教程](http://ifeve.com/java-nio-all/) 52 | + [以Java的视角来聊聊BIO、NIO与AIO的区别?](https://juejin.im/entry/598da7d16fb9a03c42431ed3) 53 | 54 | #### Java容器 ==>> 推荐阅读[《分布式Java应用 基础与实践》](https://book.douban.com/subject/4848587/)第四章 55 | 56 | + [Java集合学习指南](http://wiki.jikexueyuan.com/project/java-collection/) 57 | + [java 集合类知识汇总](https://mp.weixin.qq.com/s/2P-wEvmig-M2Ehde1REGjQ) 58 | + [Java 容器](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%AE%B9%E5%99%A8.md#arraylist) 59 | + [ArrayList vs. LinkedList vs. Vector](http://www.importnew.com/8782.html) 60 | + [ArrayList、LinkedList、Vector、HashSet、Treeset、HashMap、TreeMap的区别和适用场景](http://bs-yg.iteye.com/blog/2253605) 61 | + [Java Collections Framework - ArrayList](https://www.jianshu.com/p/4b7aa8a022ba) 62 | + **HashMap与ConcurrentHashMap** 63 | + [占小狼:深入浅出ConcurrentHashMap1.8](https://www.jianshu.com/p/c0642afe03e0) 64 | + [占小狼:谈谈ConcurrentHashMap1.7和1.8的不同实现](https://www.jianshu.com/p/e694f1e868ec) 65 | + [占小狼:ConcurrentHashMap的红黑树实现分析](https://www.jianshu.com/p/23b84ba9a498) 66 | + [占小狼:老生常谈,HashMap的死循环](https://www.jianshu.com/p/1e9cf0ac07f4) 67 | + [HashMap与ConcurrentHashMap在JDK1.7和JDK1.8中的实现](https://crossoverjie.top/2018/07/23/java-senior/ConcurrentHashMap/) 68 | + [美团技术团队:Java 8系列之重新认识HashMap](https://tech.meituan.com/java_hashmap.html) 69 | + **优先级队列** 70 | + [PriorityQueue](https://github.com/CarpenterLee/JCFInternals/blob/master/markdown/8-PriorityQueue.md) 71 | + [优先级队列是一种什么样的数据结构](http://www.importnew.com/6510.html) 72 | + [堆排序和 PriorityQueue 源码解析](https://zhuanlan.zhihu.com/p/25843530) 73 | + [基于堆实现的优先级队列:PriorityQueue 解决 Top K 问题](https://my.oschina.net/leejun2005/blog/135085) 74 | + [jdk源码分析PriorityQueue](http://zswlib.iteye.com/blog/2334463)] 75 | 76 | #### Java 8 ==>> 推荐阅读《Java 8实战》与《Java 8函数式编程》 77 | 78 | + [What's New in JDK 8](http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html) 79 | + [IBM: Java 8 新特性概述](https://www.ibm.com/developerworks/cn/java/j-lo-jdk8newfeature/index.html) 80 | + [Java 8 特性 – 终极手册](http://www.importnew.com/19345.html) 81 | + [IBM:Java 8 中的 Streams API 详解](https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/) 82 | 83 | #### 值得思考的问题: 84 | 85 | + [Java 8接口上的default method设计目的是什么?](https://www.zhihu.com/question/41166418/answer/139494009) -------------------------------------------------------------------------------- /md/Java并发.md: -------------------------------------------------------------------------------- 1 | # 六.Java并发(Concurrency) 2 | 3 | #### 推荐书籍: 4 | 5 | + [《Java并发编程的艺术》](https://book.douban.com/subject/26591326/) 6 | 7 | z这本书比《Java并发编程实战》更适合入门一些。作者还创办了并发编程网,里面有很多值得读的文章。 8 | 9 | + [《Java并发编程实战》](https://book.douban.com/subject/10484692/) 10 | 11 | jdk并发包作者写的书,书很好,但翻译为人诟病很久。 12 | 13 | + [《实战Java高并发程序设计》](https://book.douban.com/subject/26663605/) 14 | 15 | 在图书馆瞎逛的时候看到的一本书,翻了翻,出乎意料地不错,涉及到一些Java8函数式编程的知识。 16 | 17 | #### 并发合集 18 | 19 | + [深入理解java内存模型系列文章](http://ifeve.com/java-memory-model-0/) 20 | + [深入浅出 Java Concurrency](http://www.blogjava.net/xylz/archive/2010/07/08/325587.html) 21 | + [死磕Java并发](https://www.jianshu.com/nb/12860760) 22 | + [Java 并发](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%B9%B6%E5%8F%91.md) 23 | + [Java 并发知识合集](https://github.com/CL0610/Java-concurrency) 24 | 25 | #### Java并发工具类之LongAdder 26 | 27 | + [Java并发工具类之LongAdder原理总结](https://github.com/aCoder2013/blog/issues/22) 28 | + [Java8 Striped64 和 LongAdder](http://ifeve.com/java8-striped64-and-longadder/) 29 | 30 | #### 线程池 31 | 32 | + [深入分析java线程池的实现原理](https://www.jianshu.com/p/87bff5cc8d8c) 33 | + [线程池的工作原理与源码解读](https://www.cnblogs.com/qingquanzi/p/8146638.html) 34 | + [Java并发编程:线程池的使用](https://www.cnblogs.com/dolphin0520/p/3932921.html) 35 | + [聊聊并发(三)——JAVA线程池的分析和使用](http://www.infoq.com/cn/articles/java-threadPool) 36 | 37 | #### 阻塞队列 38 | 39 | + [聊聊并发(七)——Java中的阻塞队列](http://www.infoq.com/cn/articles/java-blocking-queue?utm_source=infoq&utm_campaign=user_page&utm_medium=link) 40 | + [【死磕Java并发】-----J.U.C之阻塞队列:BlockingQueue总结](https://www.jianshu.com/p/4af8ab00c587) 41 | + [【死磕Java并发】-----J.U.C之阻塞队列:ArrayBlockingQueue](https://www.jianshu.com/p/0a0b58934401) 42 | + [【死磕Java并发】-----J.U.C之阻塞队列:LinkedBlockingDeque](https://www.jianshu.com/p/f1b2c053c103) 43 | + [【死磕Java并发】-----J.U.C之阻塞队列:PriorityBlockingQueue](https://www.jianshu.com/p/43954715aa28) 44 | + [【死磕Java并发】-----J.U.C之阻塞队列:SynchronousQueue](https://www.jianshu.com/p/9d2c706e45b7) 45 | + [【死磕Java并发】-----J.U.C之阻塞队列:LinkedTransferQueue](https://www.jianshu.com/p/bd708cb3ea91) 46 | 47 | #### synchronized和lock 48 | 49 | + [【死磕Java并发】-----深入分析synchronized的实现原理](https://www.jianshu.com/p/fe49b156b1a6) 50 | + [深入浅出synchronized](https://www.jianshu.com/p/19f861ab749e) 51 | + [Lock与synchronized 的区别](http://houlinyan.iteye.com/blog/1112535) 52 | + [并发编程的锁机制:synchronized和lock](https://juejin.im/post/5a43ad786fb9a0450909cb5f) 53 | 54 | #### CAS 55 | 56 | + [面试必问的CAS,要多了解](https://www.jianshu.com/p/24ffe531e9ee) 57 | + [乐观锁的一种实现方式——CAS](http://www.hollischuang.com/archives/1537) 58 | + [【死磕Java并发】-----J.U.C之深入分析CAS](https://www.jianshu.com/p/61c90bd79d66) 59 | 60 | #### ThreadLocal 61 | 62 | + [深入浅出ThreadLocal](https://www.jianshu.com/p/33c5579ef44f) 63 | + [Java面试必问,ThreadLocal终极篇](https://www.jianshu.com/p/377bb840802f) 64 | + [【死磕Java并发】—–深入分析ThreadLocal](http://cmsblogs.com/?p=2442) 65 | 66 | #### Java中的锁 67 | 68 | + [Java中的锁](http://www.importnew.com/19472.html) 69 | + [【死磕Java并发】-----J.U.C之重入锁:ReentrantLock](https://www.jianshu.com/p/508412a6ffdc) 70 | + [【死磕Java并发】-----J.U.C之读写锁:ReentrantReadWriteLock](https://www.jianshu.com/p/d47fe1ec1bb3) 71 | 72 | #### Java秒杀 73 | 74 | + [设计一个秒杀系统](https://github.com/crossoverJie/JCSprout/blob/master/MD/Spike.md) 75 | + [秒杀架构实践](https://crossoverjie.top/2018/05/07/ssm/SSM18-seconds-kill/) 76 | + [限流算法](https://github.com/crossoverJie/JCSprout/blob/master/MD/Limiting.md) 77 | + [知乎:秒杀系统设计](https://www.zhihu.com/question/54895548) -------------------------------------------------------------------------------- /md/Web Server.md: -------------------------------------------------------------------------------- 1 | ## Web Server 2 | 3 | ### Tomcat 4 | 5 | ### Nginx 6 | 7 | -------------------------------------------------------------------------------- /md/Zookeeper.md: -------------------------------------------------------------------------------- 1 | + [Zookeeper教程](https://www.w3cschool.cn/zookeeper/) 2 | 3 | + [gitbook:Zookeeper深入浅出](https://holynull.gitbooks.io/zookeeper/content/) 4 | 5 | + [《从Paxos到Zookeeper》](https://book.douban.com/subject/26292004/) 6 | 7 | -------------------------------------------------------------------------------- /md/其他.md: -------------------------------------------------------------------------------- 1 | # 十二.其他 2 | 3 | ## IDEA 4 | 5 | + [IntelliJ-IDEA-Tutorial](https://github.com/judasn/IntelliJ-IDEA-Tutorial) 6 | + [IntelliJ IDEA神器使用技巧](https://www.imooc.com/learn/924) 7 | 8 | ## Postman 9 | 10 | + [Postman系列教程](https://www.jellythink.com/archives/category/tool-tutorials/postman) 11 | 12 | #### 压力测试 13 | 14 | + Apache bench 15 | + JMeter 16 | 17 | ## Swagger 18 | 19 | ## Git 20 | 21 | + [使用git提交到github,每次都要输入用户名和密码的解决方法](https://www.cnblogs.com/sky6862/p/7992736.html) 22 | + [GitHub & Git](https://www.nowcoder.com/courses/2) 23 | + [《Pro Git》](http://iissnan.com/progit/) 24 | 25 | ## 任务调度 26 | 27 | + [Java定时任务调度工具详解之Timer篇](https://www.imooc.com/learn/841) 28 | + [Java定时任务调度工具详解之Quartz篇](https://www.imooc.com/learn/846) 29 | + [Quartz官方文档中文版](https://www.w3cschool.cn/quartz_doc/) 30 | + [Quartz Documentation](http://www.quartz-scheduler.org/documentation/) 31 | 32 | ## Docker 33 | 34 | + [Docker入门教程](http://www.docker.org.cn/book/docker/what-is-docker-16.html) 35 | + [视频:Docker入门](https://www.imooc.com/learn/867) 36 | 37 | ## RESTful 38 | 39 | + [怎样用通俗的语言解释REST,以及RESTful?](https://www.zhihu.com/question/28557115) 40 | 41 | ## 杂 42 | 43 | + [美团技术团队:常见性能优化策略的总结](http://tech.meituan.com/performance_tunning.html) 44 | + [美团技术团队:性能优化模式](http://tech.meituan.com/performance_tuning_pattern.html) 45 | 46 | 47 | -------------------------------------------------------------------------------- /md/分布式.md: -------------------------------------------------------------------------------- 1 | # 十一.分布式 2 | 3 | ## 1.分布式基础理论 4 | 5 | + [美团技术团队:分布式系统互斥性与幂等性问题的分析与解决](https://tech.meituan.com/distributed_system_mutually_exclusive_idempotence_cerberus_gtis.html) 6 | + [分布式基础理论](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/%E5%88%86%E5%B8%83%E5%BC%8F.md) 7 | + **CAP理论:** 8 | + 论文:[Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web](https://users.ece.cmu.edu/~adrian/731-sp04/readings/GL-cap.pdf) 9 | + [CAP 定理的含义](http://www.ruanyifeng.com/blog/2018/07/cap.html) 10 | + [分布式理论(一) - CAP定理](https://juejin.im/post/5b26634b6fb9a00e765e75d1) 11 | + **BASE理论:** 12 | + [分布式理论(二) - BASE理论](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2663fcf265da59a401e6f8) 13 | + **2PC协议:** 14 | + [分布式理论(三) - 2PC协议](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664446fb9a00e4a53136e) 15 | + **3PC协议:** 16 | + [分布式理论(四) - 3PC协议](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b26648e5188257494641b9f) 17 | + **一致性算法Paxos:** 18 | + [分布式理论(五) - 一致性算法Paxos](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664bd51882574874d8a76) 19 | + **一致性协议Raft:** 20 | + [分布式理论(六) - 一致性协议Raft](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5b2664e2f265da59584d8c90) 21 | + **分布式事务** 22 | + [事务相关基础知识](http://www.hollischuang.com/archives/tag/%E4%BA%8B%E5%8A%A1) 23 | + [分布式事务](http://tech.dianwoda.com/2018/09/27/fen-bu-shi-shi-wu/) 24 | + [IBM developerWorks : JTA 深度历险 - 原理与实现](https://www.ibm.com/developerworks/cn/java/j-lo-jta/index.html) 25 | + [深入理解「分布式事务」](https://mp.weixin.qq.com/s/_iGYAgx_CSxIHBMLtwbpNg) 26 | + **happens-before** 27 | + 论文:[Time, Clocks, and the Ordering of Events in a Distributed System](https://lamport.azurewebsites.net/pubs/time-clocks.pdf) 28 | 29 | -------------------------------------------------------------------------------- /md/搜索引擎.md: -------------------------------------------------------------------------------- 1 | # 十二.搜索引擎 2 | 3 | ## Elasticsearch 4 | 5 | ## Apache Solr -------------------------------------------------------------------------------- /md/操作系统.md: -------------------------------------------------------------------------------- 1 | # 二.操作系统(Operating System) 2 | 3 | ## 操作系统基础知识(基于CSAPP) 4 | 5 | ### 基础知识 6 | 7 | + [【不周山之读薄 CSAPP】零 系列概览](https://wdxtub.com/2016/04/16/thin-csapp-0/) 8 | + [壹 数据表示 - 不同的数据是如何存储与表示的](http://wdxtub.com/2016/04/16/thin-csapp-1/) 9 | + [贰 机器指令与程序优化 - 控制流、过程调用、跳转](http://wdxtub.com/2016/04/16/thin-csapp-2/) 10 | + [叁 内存与缓存 - 内存层级与缓存机制](http://wdxtub.com/2016/04/16/thin-csapp-3/) 11 | + [肆 链接 - 不同的代码如何协同](http://wdxtub.com/2016/04/16/thin-csapp-4/) 12 | + [伍 异常控制流 - 不同进程间的切换与沟通](http://wdxtub.com/2016/04/16/thin-csapp-5/) 13 | + [陆 系统输入输出 - 怎么把不同的内容发送到不同的地方](http://wdxtub.com/2016/04/16/thin-csapp-6/) 14 | + [柒 虚拟内存与动态内存分配 - 现代计算机中内存的奥秘](http://wdxtub.com/2016/04/16/thin-csapp-7/) 15 | + [捌 网络编程 - 从最原始套接字彻底理解网络编程](http://wdxtub.com/2016/04/16/thin-csapp-8/) 16 | + [玖 并行与同步 - 协同工作中最重要的两个问题](http://wdxtub.com/2016/04/16/thin-csapp-9/) 17 | 18 | ### 实验部分 19 | 20 | + [实验概览](http://wdxtub.com/2016/04/16/thick-csapp-lab-0/) 21 | + [I Data Lab - 位操作,数据表示](http://wdxtub.com/2016/04/16/thick-csapp-lab-1/) 22 | + [II Bomb Lab - 汇编,栈帧与 gdb](http://wdxtub.com/2016/04/16/thick-csapp-lab-2/) 23 | + [III Attack Lab - 漏洞是如何被攻击的](http://wdxtub.com/2016/04/16/thick-csapp-lab-3/) 24 | + [IV Cache Lab - 实现一个缓存系统来加速计算](http://wdxtub.com/2016/04/16/thick-csapp-lab-4/) 25 | + [V Shell Lab - 实现一个 shell](http://wdxtub.com/2016/04/16/thick-csapp-lab-5/) 26 | + [VI Malloc Lab - 实现一个动态内存分配](http://wdxtub.com/2016/04/16/thick-csapp-lab-6/) 27 | + [VII Proxy Lab - 实现一个多线程带缓存的代理服务器](http://wdxtub.com/2016/04/16/thick-csapp-lab-7/) 28 | 29 | 30 | 31 | ## Linux 32 | 33 | #### Linux基础 34 | 35 | + [《The Linux Command Line》](https://book.douban.com/subject/6806862/) 36 | + [对应的中文在线版](http://billie66.github.io/TLCL/book/) 37 | 38 | + [实验楼:Linux基础](https://www.shiyanlou.com/courses/1) 39 | + [Linux命令实例练习](https://www.shiyanlou.com/courses/68) 40 | + [《鸟哥的Linux私房菜在线阅读》](http://linux.vbird.org/linux_basic/) 41 | + [Linux 命令大全](http://www.runoob.com/linux/linux-command-manual.html) 42 | 43 | #### Linux shell 44 | 45 | + [实验楼:高级 bash 脚本编程指南](https://www.shiyanlou.com/courses/944) 46 | + [正则表达式基础](https://www.shiyanlou.com/courses/90) 47 | + [《Linux Shell脚本攻略》](https://book.douban.com/subject/6889456/) 48 | 49 | #### Vim 50 | 51 | + [Vim编辑器基本使用](https://www.shiyanlou.com/courses/2) 52 | + [陈皓:简明 VIM 练级攻略](https://coolshell.cn/articles/5426.html) 53 | 54 | #### Linux内核 -------------------------------------------------------------------------------- /md/数据库.md: -------------------------------------------------------------------------------- 1 | # 三.数据库(Database) 2 | 3 | ## 数据库理论 4 | 5 | #### 事务 6 | 7 | + [『浅入深出』MySQL 中事务的实现](https://draveness.me/mysql-transaction) 8 | + [彻底理解数据库事务](http://www.hollischuang.com/archives/898) 9 | + [深入分析事务的隔离级别](http://www.hollischuang.com/archives/943) 10 | + [知乎:数据库事务原子性、一致性是怎样实现的?](https://www.zhihu.com/question/30272728) 11 | + [知乎:乐观锁和 MVCC 的区别?](https://www.zhihu.com/question/27876575) 12 | + [浅谈数据库并发控制 - 锁和 MVCC](https://draveness.me/database-concurrency-control) 13 | + [InnoDB存储引擎MVCC实现原理](https://liuzhengyang.github.io/2017/04/18/innodb-mvcc/) 14 | 15 | #### 范式 16 | 17 | + [解释一下关系数据库的第一第二第三范式?](https://www.zhihu.com/question/24696366/answer/29189700) 18 | 19 | 20 | 21 | ## MySQL 22 | 23 | + [MySQL](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/MySQL.md) 24 | 25 | #### MySQL索引 26 | 27 | + [MYSQL-索引](https://segmentfault.com/a/1190000003072424) 28 | + [MySQL索引背后的数据结构及算法原理](http://blog.codinglabs.org/articles/theory-of-mysql-index.html) 29 | 30 | #### MySQL优化 31 | 32 | + [MySQL 对于千万级的大表要怎么优化?](https://www.zhihu.com/question/19719997) 33 | + [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) 34 | + [MySQL 性能优化神器 Explain 使用分析](https://segmentfault.com/a/1190000008131735) 35 | + [SQL优化方案](https://mp.weixin.qq.com/s/DBeVzJyR9_PXnoAIfJiHfg) 36 | 37 | #### MySQL的锁 38 | 39 | + [对mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解](https://blog.csdn.net/puhaiyang/article/details/72284702) 40 | + [数据库的锁机制](http://www.hollischuang.com/archives/909) 41 | + [深入理解乐观锁与悲观锁](http://www.hollischuang.com/archives/934) 42 | 43 | 44 | 45 | ## Redis 46 | 47 | 关于Redis的学习,命令与基础知识部分,Redis官网其实蛮详细了。 48 | 49 | + [英文官网](https://redis.io/) 50 | 51 | + [Redis中文网](http://www.redis.cn/) 52 | 53 | #### 书籍推荐: 54 | 55 | + [《Redis开发与运维》](https://book.douban.com/subject/26971561/) 56 | 57 | 这本书主要是关于基础知识的讲解,比较全面,其实还有一本[《Redis实战》](https://book.douban.com/subject/26612779/),我翻了翻,没怎么细看。 58 | 59 | + [《Redis设计与实现》](https://book.douban.com/subject/25900156/) 60 | 61 | Redis底层是用C语言写的,这本书剖析了Redis的内部源码实现,配图也很多,有很多经典巧妙的数据结构,我觉得是对算法学习很好的补充。 62 | 63 | + [《Redis 深度历险:核心原理与应用实践》](https://book.douban.com/subject/30386804/) 64 | 65 | 这本书有对应的小册,在掘金官网上可以购买,我只看了小册,不过书和小册应该基本一致。 66 | 67 | #### 基础知识 68 | 69 | + [字符串(strings)](http://www.redis.cn/topics/data-types-intro.html#strings) 70 | + [散列(hashes)](http://www.redis.cn/topics/data-types-intro.html#hashes) 71 | + [列表(lists)](http://www.redis.cn/topics/data-types-intro.html#lists) 72 | + [集合(sets)](http://www.redis.cn/topics/data-types-intro.html#sets) 73 | + [有序集合(sorted sets)](http://www.redis.cn/topics/data-types-intro.html#sorted-sets) 74 | + [bitmaps](http://www.redis.cn/topics/data-types-intro.html#bitmaps) 75 | + [hyperloglogs](http://www.redis.cn/topics/data-types-intro.html#hyperloglogs) 76 | + [地理空间(geospatial)](http://www.redis.cn/commands/geoadd.html) 77 | + [复制(replication)](http://www.redis.cn/topics/replication.html) 78 | + [LUA脚本(Lua scripting)](http://www.redis.cn/commands/eval.html) 79 | + [LRU驱动事件(LRU eviction)](http://www.redis.cn/topics/lru-cache.html) 80 | + [事务(transactions)](http://www.redis.cn/topics/transactions.html) 81 | + [磁盘持久化(persistence)](http://www.redis.cn/topics/persistence.html) 82 | + [Redis哨兵(Sentinel)](http://www.redis.cn/topics/sentinel.html) 83 | + [分区(Cluster)](http://www.redis.cn/topics/cluster-tutorial.html) 84 | 85 | #### 底层源码解析 86 | 87 | + [合集](http://wiki.jikexueyuan.com/project/redis/) 88 | 89 | + [Redis源码解析](https://redissrc.readthedocs.io/en/latest/index.html) 90 | 91 | #### 分布式锁 92 | 93 | + [点我达技术:Redis分布式锁进化史](http://tech.dianwoda.com/2018/04/11/redisfen-bu-shi-suo-jin-hua-shi/) 94 | 95 | #### 缓存 96 | 97 | + [美团技术团队:缓存那些事](https://tech.meituan.com/cache_about.html) 98 | 99 | -------------------------------------------------------------------------------- /md/框架.md: -------------------------------------------------------------------------------- 1 | # 九.框架(Framework) 2 | 3 | ## 1. Spring总览 4 | 5 | + [Spring 框架的设计理念与设计模式分析](https://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/index.html) 6 | 7 | ## 2. IoC 8 | 9 | ### 2.1 IoC介绍 10 | 11 | + [知乎:Spring IOC原理总结](https://zhuanlan.zhihu.com/p/29344811) 12 | + [知乎:Spring IoC有什么好处呢?](https://www.zhihu.com/question/23277575) 13 | ### 2.2 IoC容器 14 | 15 | + BeanFactory 16 | + ApplicationContext以及WebApplicationContext 17 | + BeanFactory和ApplicationContext中各自Bean的生命周期 18 | + Bean的注入方式和作用域 19 | 20 | #### AOP 21 | 22 | + [Spring AOP 实现原理与 CGLIB 应用](https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/index.html) 23 | + **动态代理** 24 | + [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/) 25 | + [Java Proxy 和 CGLIB 动态代理原理](http://www.importnew.com/27772.html) 26 | 27 | #### 常用知识点 28 | 29 | + [Spring常见面试题](https://www.w3cschool.cn/fisug/) 30 | + [知乎:@Autowired和@Resource的区别是什么?](https://www.zhihu.com/question/39356740) 31 | + StringRedisTemplate 类 32 | + [Spring Doc: Class StringRedisTemplate](https://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/core/StringRedisTemplate.html) 33 | + [如何使用RedisTemplate访问Redis数据结构](https://www.jianshu.com/p/7bf5dc61ca06) 34 | + **RestTemplate类** 35 | + [Spring Doc: Class RestTemplate](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html) 36 | + [A Guide to the RestTemplate | Baeldung](https://www.baeldung.com/rest-template) 37 | + [Spring RestTemplate 中几种常见的请求方式](https://blog.csdn.net/u012702547/article/details/77917939) 38 | 39 | ## Spring Boot 40 | 41 | + [@SpringBootApplication(源码分析与启动流程)](http://tengj.top/2017/03/09/springboot3/) ==>> 推荐阅读《Spring Boot揭秘》第三章 42 | + **参考视频教程** 43 | + [SpringBoot开发常用技术整合](https://www.imooc.com/learn/956) 44 | + [Spring Boot聚合工程](https://www.imooc.com/learn/933) 45 | + [Spring Boot热部署](https://www.imooc.com/learn/915) 46 | + **参考文档以及开原作品索引** 47 | + [Spring Boot 中文索引](http://springboot.fun/) 48 | 49 | #### Thymeleaf 50 | 51 | + [Thymeleaf-Reference-Guide中文翻译](https://github.com/jack80342/Thymeleaf-Reference-Guide) 52 | 53 | ## Spring MVC 54 | 55 | + [Spring MVC中文文档](https://spring-mvc.linesh.tw/) 56 | 57 | + [SpringMVC深度探险系列](http://www.iteye.com/blogs/subjects/springmvc-explore) 58 | 59 | #### **Servlet** 60 | 61 | + [知乎:servlet的本质是什么,它是如何工作的?](https://www.zhihu.com/question/21416727) 62 | + [许令波:Servlet 工作原理解析](https://www.ibm.com/developerworks/cn/java/j-lo-servlet/index.html) 63 | + [Servlet生命周期与工作原理](https://www.cnblogs.com/cuiliang/archive/2011/10/21/2220671.html) 64 | 65 | #### redirect和forward 66 | 67 | + [知乎:web开发过程中redirect和forward有什么区别?](https://www.zhihu.com/question/38013677) 68 | + [请求转发(Forward)和重定向(Redirect)的区别](https://www.cnblogs.com/Qian123/p/5345527.html) 69 | 70 | #### Spring MVC常用注解 71 | 72 | + [springmvc常用注解标签详解](https://www.cnblogs.com/leskang/p/5445698.html) 73 | + [Spring MVC 的常用注解](https://blog.csdn.net/qian_ch/article/details/73826663) 74 | 75 | #### 面试相关 76 | 77 | + [SpringMVC面试题](https://www.w3cschool.cn/qgutf/) 78 | 79 | ## MyBatis 80 | 81 | + [MyBatis Reference Documentation](http://www.mybatis.org/mybatis-3/index.html) ===> [中文文档](http://www.mybatis.org/mybatis-3/zh/index.html) 82 | + [美团技术团队:聊聊MyBatis缓存机制](https://tech.meituan.com/mybatis_cache.html) 83 | + [动态SQL](http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html) 84 | + [MyBatis常见面试题](https://www.w3cschool.cn/kzsow/) 85 | + MyBatis中的#与$的区别 86 | 87 | ## Spring Cloud 88 | 89 | + **参考文档以及开源作品索引** 90 | + [Spring Cloud 中文索引](http://springcloud.fun/) 91 | 92 | -------------------------------------------------------------------------------- /md/消息队列.md: -------------------------------------------------------------------------------- 1 | ## 消息队列 2 | 3 | ### RabbitMQ 4 | 5 | ### RocketMQ 6 | 7 | ### kafka 8 | 9 | ### ActiveMQ -------------------------------------------------------------------------------- /md/科普系列.md: -------------------------------------------------------------------------------- 1 | + [大话数据库连接池简史,你都用过几个?](https://mp.weixin.qq.com/s/44ZGZOAjJHl2aUDWMrnXiw) 2 | + [小白科普:Java EE vs J2EE vs Jakarta EE](https://mp.weixin.qq.com/s/44ZGZOAjJHl2aUDWMrnXiw) 3 | + [一个著名的日志系统是怎么设计出来的](https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665513967&idx=1&sn=5586ce841a7e8b39adc2569f0eb5bb45&chksm=80d67bacb7a1f2ba38aa37620d273dfd7d7227667df556d36c84d125cafd73fef16464288cf9&scene=21#wechat_redirect) 4 | 5 | -------------------------------------------------------------------------------- /md/算法.md: -------------------------------------------------------------------------------- 1 | # 四.算法(Algorithm) 2 | 3 | #### 排序算法 4 | 5 | + [常见排序算法及对应的时间复杂度和空间复杂度](http://www.ganecheng.tech/blog/52652705.html) 6 | + [常用的八种排序算法Java代码实现](https://www.jianshu.com/p/5e171281a387) 7 | + [图解排序算法(一)之3种简单排序(选择,冒泡,直接插入)](https://www.cnblogs.com/chengxiao/p/6103002.html) 8 | + [图解排序算法(二)之希尔排序](http://www.cnblogs.com/chengxiao/p/6104371.html) 9 | + [图解排序算法(三)之堆排序](http://www.cnblogs.com/chengxiao/p/6129630.html) 10 | + [图解排序算法(四)之归并排序](https://www.cnblogs.com/chengxiao/p/6194356.html) 11 | + [图解排序算法(五)之快速排序——三数取中法](http://www.cnblogs.com/chengxiao/p/6262208.html) 12 | 13 | #### 递归与尾递归 14 | 15 | + [知乎:什么是尾递归?](https://www.zhihu.com/question/20761771) 16 | 17 | #### 字典树(Trie) 18 | 19 | + [从Trie树(字典树)谈到后缀树](https://blog.csdn.net/v_july_v/article/details/6897097) 20 | + [Trie 三兄弟——标准 Trie、压缩 Trie、后缀 Trie](https://www.cnblogs.com/youxin/p/3301411.html) 21 | 22 | #### 红黑树 23 | 24 | + [红黑树](https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/03.01.md) 25 | + [美团技术团队:红黑树深入剖析及Java实现](https://tech.meituan.com/redblack_tree.html) 26 | 27 | #### KMP 28 | 29 | + [为什么java String.contains 没有使用类似KMP字符串匹配算法进行优化?](https://www.zhihu.com/question/27852656) 30 | 31 | #### 布隆过滤器(Bloom Filter) 32 | 33 | + [吴军:数学之美系列二十一 - 布隆过滤器(Bloom Filter)](https://china.googleblog.com/2007/07/bloom-filter_7469.html) 34 | + [使用BloomFilter布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重]() 35 | + [布隆过滤器(Bloom Filter)的原理和实现](https://www.cnblogs.com/cpselvis/p/6265825.html) 36 | 37 | #### 一致性哈希 38 | 39 | + [一致性哈希算法的理解与实践](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/) 40 | + [一致性HASH算法详解](https://www.jianshu.com/p/e8fb89bb3a61) 41 | 42 | #### JDK里的排序算法 43 | 44 | + [Java提供的排序算法是怎么实现的?](https://blog.csdn.net/xlgen157387/article/details/79863301) 45 | + [排序算法在jdk源码中的应用](https://blog.csdn.net/java_student09/article/details/52235278) 46 | + [java.util.Arrays的排序研究](http://hxraid.iteye.com/blog/665095) 47 | 48 | #### Huffman 编码 49 | 50 | + [霍夫曼编码](https://zh.wikipedia.org/wiki/%E9%9C%8D%E5%A4%AB%E6%9B%BC%E7%BC%96%E7%A0%81) 51 | + [HUFFMAN 编码压缩算法](https://coolshell.cn/articles/7459.html) 52 | 53 | #### 并查集 54 | 55 | + [并查集(Union-Find)算法介绍](https://blog.csdn.net/dm_vincent/article/details/7655764) 56 | + [维基百科:并查集](https://coolshell.cn/articles/7459.html) 57 | 58 | -------------------------------------------------------------------------------- /md/系统设计.md: -------------------------------------------------------------------------------- 1 | ## 系统设计 2 | 3 | + [系统设计面试之前需要知道的八件事](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd1.html) 4 | + 设计Twitter 5 | + [如何设计 Twitter(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd2.html) 6 | + [如何设计 Twitter(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd3.html) 7 | + [创建照片分享应用](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd4.html) 8 | + [创建短网址系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd5.html) 9 | + [如何设计 Google Docs](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd6.html) 10 | + 设计新闻推送系统 11 | + [设计新闻推送系统(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd7.html) 12 | + [设计新闻推送系统(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd8.html) 13 | + [设计 Facebook 聊天功能](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd9.html) 14 | + [如何为 Twitter 设计趋势算法](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd10.html) 15 | + [设计缓存系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd11.html) 16 | + [设计推荐系统](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd12.html) 17 | + [随机 ID 生成器](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd13.html) 18 | + 设计键值存储 19 | + [设计键值存储(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd14.html) 20 | + [设计键值存储(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd15.html) 21 | + [构建网页爬虫](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd16.html) 22 | + 设计垃圾回收系统 23 | + [设计垃圾回收系统(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd17.html) 24 | + [设计垃圾回收系统(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd18.html) 25 | + 设计电商网站 26 | + [设计电商网站(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd19.html) 27 | + [设计电商网站(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd20.html) 28 | + [设计点击计数器](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd21.html) 29 | + 设计 Youtube 30 | + [设计 Youtube(第一部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd22.html) 31 | + [设计 Youtube(第二部分)](https://wizardforcel.gitbooks.io/gainlo-interview-guide/content/sd23.html) 32 | 33 | -------------------------------------------------------------------------------- /md/计算机网络.md: -------------------------------------------------------------------------------- 1 | # 一.计算机网络(Computer Networking) 2 | 3 | #### 推荐书籍 4 | 5 | + [《图解HTTP》](https://book.douban.com/subject/25863515/) 6 | 7 | 图解系列感觉都还不错,对新手很友好。还有一本老厚老厚[《HTTP权威指南》](https://book.douban.com/subject/10746113/),暂时还没有时间看。 8 | 9 | + [《图解TCP/IP》](https://book.douban.com/subject/24737674/) 10 | 11 | 如果对网络零基础,可以作为阅读以下几本书的铺垫。 12 | 13 | + [《计算机网络:自顶向下方法》](https://book.douban.com/subject/26176870/) 14 | 15 | 豆瓣上有人提供了本书的相应公开课,不过只看了书,公开课没看,[国立清华大学公开课地址](http://ocw.nthu.edu.tw/ocw/index.php?page=course&cid=13&),[原贴地址](https://book.douban.com/review/7443456/) 16 | 17 | + [《TCP/IP详解 卷1:协议》](https://book.douban.com/subject/1088054/) 18 | 19 | 计算机网络的权威书籍。了解到作者生平故事的时候,总觉得英年早逝,真的很可惜。 20 | 21 | + [《计算机网络》](https://book.douban.com/subject/26960678/) 22 | 23 | 这本书其实是我最早看的关于计算机网络的书籍,是国内一些大学的教材,尽管自己也被国内很多教材荼毒过,但这本书还是不错的。 24 | 25 | #### 计算机网络总览 26 | 27 | + [计算机网络](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) 28 | + [HTTP](https://github.com/CyC2018/CS-Notes/blob/master/notes/HTTP.md) 29 | 30 | #### TCP、UDP 31 | 32 | + [通俗大白话来理解TCP协议的三次握手和四次分手](https://github.com/jawil/blog/issues/14) 33 | + [TCP 为什么是三次握手,而不是两次或四次?](https://www.zhihu.com/question/24853633) 34 | + [理解 TCP 和 UDP](https://jerryc8080.gitbooks.io/understand-tcp-and-udp/) 35 | + [TCP长连接和心跳那些事](https://mp.weixin.qq.com/s/U5SQkaCI2DI6WiaRYVpN2g) 36 | 37 | #### 计算机网络体系结构 38 | 39 | + [OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系](https://www.cnblogs.com/wxd0108/p/7597216.html) 40 | 41 | #### HTTP 42 | 43 | + **HTTP 请求方法** 44 | + [MDN: HTTP 请求方法](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods) 45 | + [w3school HTTP 方法: GET 对比 POST](http://www.w3school.com.cn/tags/html_ref_httpmethods.asp) 46 | + **HTTP 状态码** 47 | + [w3school: HTTP 状态消息](http://www.w3school.com.cn/tags/html_ref_httpmessages.asp) 48 | + [MDN: HTTP response codes](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/HTTP_response_codes) 49 | + **HTTP 缓存** 50 | + [MDN: HTTP 缓存 FAQ](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching_FAQ) 51 | + [google developers: HTTP 缓存](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching?hl=zh-cn) 52 | + [MDN: Cache-Control](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers) ==>> [英文](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) 53 | + **HTTP内容协商** 54 | + [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) 55 | + [谈谈 HTTP/2 的协议协商机制](https://imququ.com/post/protocol-negotiation-in-http2.html) 56 | + **HTTP内容安全策略( CSP )** 57 | + [内容安全策略( 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) 58 | + [阮一峰:Content Security Policy 入门教程](http://www.ruanyifeng.com/blog/2016/09/csp.html) 59 | + **HTTP的发展:0.9/1.0/1.1/2.0** 60 | + [MDN: HTTP的发展](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP) 61 | + [[译] HTTP 的进化 - 0.9、1.0、1.1、Keep-Alive、Upgrade 和 HTTPS](https://juejin.im/post/5aefc2a3f265da0b8c24e0c5) 62 | + [阮一峰:HTTP 协议入门](http://www.ruanyifeng.com/blog/2016/08/http.html) 63 | + [HTTP/1.x 的连接管理](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Connection_management_in_HTTP_1.x) 64 | + **Identifying resources on the Web** 65 | + [URI、URL、URN 的联系和区别](https://waylau.com/difference-of-uri-url-urn/) 66 | + [Identifying resources on the Web](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web) 67 | + **浏览器发送一次网址请求的过程** 68 | + [小白科普:从输入网址到最后浏览器呈现页面内容,中间发生了什么?](https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665514196&idx=1&sn=ca26d258fcc4a35fc6d9a539b7d71dd7&chksm=80d67c97b7a1f58198b2e6ae436f73c677c0df4c05c2a8a4aad2b9e2d523da57dd5cd3d0a8ee&scene=21#wechat_redirect) 69 | + [知乎:当你在浏览器中输入 baidu.com 并且按下回车后发生了什么?](https://zhuanlan.zhihu.com/p/28262282) 70 | + [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) 71 | + **代理** 72 | + [图解正向代理、反向代理、透明代理](http://blog.51cto.com/z00w00/1031287) 73 | 74 | #### SSH 75 | 76 | + [SSH协议详解](http://airekans.github.io/protocol/2012/06/28/ssh-explained) 77 | + [SSH 原理与运用(一):远程登录](http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html) 78 | + [SSH原理与运用(二):远程操作与端口转发](http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html) 79 | 80 | #### SSL与TLS 81 | 82 | + [阮一峰:SSL/TLS协议运行机制的概述](http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html) 83 | + [阮一峰:图解SSL/TLS协议](http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html) 84 | + [维基百科:传输层安全性协议](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) 85 | 86 | #### 集线器、交换机和路由器 87 | 88 | + [路由器和交换机的不同之处有哪些?](https://www.zhihu.com/question/20465477) 89 | + [如何跟小白解释路由器和交换机的区别?](https://www.zhihu.com/question/22007235) 90 | + [集线器和交换机的区别?](https://www.zhihu.com/question/21782368) 91 | 92 | #### 全双工、半双工和单工 93 | 94 | + [串口通讯的单工、半双工和全双工的定义、区别及应用](https://blog.csdn.net/hai673580326/article/details/37819611) 95 | 96 | #### CDN ==>> 推荐阅读《深入分析Java Web技术内幕 修订版》相应章节 97 | 98 | + [知乎:CDN是什么?使用CDN有什么优势?](https://www.zhihu.com/question/36514327?rf=37353035) 99 | 100 | #### Cookie与Session ==>> 推荐阅读《深入分析Java Web技术内幕》相应章节 101 | 102 | + [知乎:Cookie和Session有什么区别?](https://www.zhihu.com/question/19786827) 103 | 104 | #### 加解密算法 105 | 106 | + [AES算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191726&idx=1&sn=c7856fe211471d01e9afdfea4a7f6b87&chksm=8c990cf4bbee85e28bb2ea63cb1f767dee4702ca8b9ef23db3467558a4b27ff5b6c1893c8771&scene=21#wechat_redirect) 107 | + [SHA系列算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191642&idx=1&sn=47c6340a6664af2f62e6c580528ea6f6&chksm=8c990f00bbee861698daa51b0622e581b3279c0759a16330fe538de745cb6abed8288b0bd778&scene=21#wechat_redirect) 108 | + [MD5算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191503&idx=1&sn=b18bd0458bf884bcb5d01f1cf2ca8301&chksm=8c990f95bbee8683fcfa9e972fd887cb1e50328ab4d8bd1f6a68ea90de6c67f46e50847e36fb&scene=21#wechat_redirect) 109 | + [如何破解MD5算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191598&idx=1&sn=13ef6b99b8a9a25f18b839df13cd6e31&chksm=8c990f74bbee866249af65e56a73f74b90a85b8497b9eea097f813a0b398a44fe0b8320967cd&scene=21#wechat_redirect) 110 | + [Base64算法](https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191459&idx=1&sn=6e7d82dabe9c4a26b55f86f502edac03&chksm=8c990ff9bbee86ef7d6eee8a92430ff529b57e2f8720d439b7a4fb83b9ba75cd91395509a239&scene=21#wechat_redirect) 111 | 112 | -------------------------------------------------------------------------------- /md/设计模式.md: -------------------------------------------------------------------------------- 1 | # 八.设计模式(Design Patterns) 2 | 3 | + [设计模式合集](http://wiki.jikexueyuan.com/project/java-design-pattern-principle/) 4 | 5 | --------------------------------------------------------------------------------