-
推荐使用chrome插件:简悦来阅读。
-
如果你在中国境内,部分文章可能需要科学上网才能阅读;当然也有可能是链接失效,你可以提交issue,感谢你的贡献。
-
仓库维护时间越久,文章目录越来越长,为了优化阅读体验,拆分了大章节,增加了每个大章节的链接。
🍓 | 🍒 | 🌰 | 🍑 | 🍏 | 🍎 | 🍇 |
---|---|---|---|---|---|---|
计算机科学 | Java | Web | 架构 | 中间件 | 分布式 | 未分类 |
计算机网络 | Java基础 | 框架 | 设计模式 | Web Server | 分布式 | 其他 |
操作系统 | Java并发 | 系统设计 | 消息队列 | 搜索引擎 | ||
数据库 | JVM | |||||
算法 |
- 《图解HTTP》
- 《图解TCP/IP》
- 《计算机网络:自顶向下方法》
- 豆瓣上有人提供了本书的相应公开课,不过我没有看,国立清华大学公开课地址,原贴地址
- HTTP 请求方法
- HTTP 状态码
- HTTP 缓存
- HTTP内容协商
- HTTP内容安全策略( CSP )
- HTTP的发展:0.9/1.0/1.1/2.0
- HTTP/1.x 的连接管理
- Identifying resources on the Web
- 浏览器发送一次网址请求的过程
- 代理
- 【不周山之读薄 CSAPP】零 系列概览
- 壹 数据表示 - 不同的数据是如何存储与表示的
- 贰 机器指令与程序优化 - 控制流、过程调用、跳转
- 叁 内存与缓存 - 内存层级与缓存机制
- 肆 链接 - 不同的代码如何协同
- 伍 异常控制流 - 不同进程间的切换与沟通
- 陆 系统输入输出 - 怎么把不同的内容发送到不同的地方
- 柒 虚拟内存与动态内存分配 - 现代计算机中内存的奥秘
- 捌 网络编程 - 从最原始套接字彻底理解网络编程
- 玖 并行与同步 - 协同工作中最重要的两个问题
- 实验概览
- I Data Lab - 位操作,数据表示
- II Bomb Lab - 汇编,栈帧与 gdb
- III Attack Lab - 漏洞是如何被攻击的
- IV Cache Lab - 实现一个缓存系统来加速计算
- V Shell Lab - 实现一个 shell
- VI Malloc Lab - 实现一个动态内存分配
- VII Proxy Lab - 实现一个多线程带缓存的代理服务器
- 『浅入深出』MySQL 中事务的实现
- 彻底理解数据库事务
- 深入分析事务的隔离级别
- 知乎:数据库事务原子性、一致性是怎样实现的?
- 知乎:乐观锁和 MVCC 的区别?
- 浅谈数据库并发控制 - 锁和 MVCC
- InnoDB存储引擎MVCC实现原理
- MySQL 对于千万级的大表要怎么优化?
- MYSQL性能优化的最佳20+条经验 ===> 英文原文:Top 20+ MySQL Best Practices
- MySQL 性能优化神器 Explain 使用分析
- 常见排序算法及对应的时间复杂度和空间复杂度
- 常用的八种排序算法Java代码实现
- 图解排序算法(一)之3种简单排序(选择,冒泡,直接插入)
- 图解排序算法(二)之希尔排序
- 图解排序算法(三)之堆排序
- 图解排序算法(四)之归并排序
- 图解排序算法(五)之快速排序——三数取中法
- 知乎:学习java应该如何理解反射?
- 深入解析Java反射(1) - 基础
- 深入解析Java反射(2) - invoke方法
- 并发编程网:Java Reflection教程
- 反射——Java高级开发必须懂的
- 在java中String类为什么要设计成final? - 知乎
- Java StringBuilder和StringBuffer源码分析
- Stack Overflow: String, StringBuffer, and StringBuilder
Java容器 ==>> 推荐阅读《分布式Java应用 基础与实践》第四章
- Java集合学习指南
- java 集合类知识汇总
- Java 容器
- ArrayList vs. LinkedList vs. Vector
- ArrayList、LinkedList、Vector、HashSet、Treeset、HashMap、TreeMap的区别和适用场景
- Java Collections Framework - ArrayList
- HashMap与ConcurrentHashMap
- 优先级队列
- 聊聊并发(七)——Java中的阻塞队列
- 【死磕Java并发】-----J.U.C之阻塞队列:BlockingQueue总结
- 【死磕Java并发】-----J.U.C之阻塞队列:ArrayBlockingQueue
- 【死磕Java并发】-----J.U.C之阻塞队列:LinkedBlockingDeque
- 【死磕Java并发】-----J.U.C之阻塞队列:PriorityBlockingQueue
- 【死磕Java并发】-----J.U.C之阻塞队列:SynchronousQueue
- 【死磕Java并发】-----J.U.C之阻塞队列:LinkedTransferQueue
- 【死磕Java并发】-----深入分析synchronized的实现原理
- 深入浅出synchronized
- Lock与synchronized 的区别
- 并发编程的锁机制:synchronized和lock
- 深入理解 java 垃圾回收机制
- 不同的垃圾回收器的比较
- 了解CMS(Concurrent Mark-Sweep)垃圾回收器
- 并发编程网:深入理解G1垃圾收集器
- 占小狼:G1垃圾收集器介绍
- 占小狼:Java GC的那些事(1)
- 占小狼:Java GC的那些事(2)
- Java GC系列(1):Java垃圾回收简介
- Java GC系列(2):Java垃圾回收是如何工作的?
- Java GC系列(3):垃圾回收器种类
- Java GC系列(4):垃圾回收监视和分析
- 知乎:怎么在面试时回答Java垃圾回收机制(GC)相关问题?
- 美团技术团队:Java Hotspot G1 GC的一些关键技术
- 系统设计面试之前需要知道的八件事
- 设计Twitter
- 创建照片分享应用
- 创建短网址系统
- 如何设计 Google Docs
- 设计新闻推送系统
- 设计 Facebook 聊天功能
- 如何为 Twitter 设计趋势算法
- 设计缓存系统
- 设计推荐系统
- 随机 ID 生成器
- 设计键值存储
- 构建网页爬虫
- 设计垃圾回收系统
- 设计电商网站
- 设计点击计数器
- 设计 Youtube
- 知乎:Spring IOC原理总结
- 知乎:Spring IoC有什么好处呢?
- BeanFactory、ApplicationContext以及WebApplicationContext
- BeanFactory和ApplicationContext中各自Bean的生命周期
- Bean的注入方式和作用域
- Spring常见面试题
- 知乎:@Autowired和@Resource的区别是什么?
- StringRedisTemplate 类
- RestTemplate类
- EntityManager
-
@SpringBootApplication(源码分析与启动流程) ==>> 推荐阅读《Spring Boot揭秘》第三章
-
参考视频教程
-
参考文档以及开原作品索引
- MyBatis Reference Documentation ===> 中文文档
- 美团技术团队:聊聊MyBatis缓存机制
- 动态SQL
- MyBatis常见面试题
- MyBatis中的#与$的区别
- 参考文档以及开源作品索引
- 美团技术团队:分布式系统互斥性与幂等性问题的分析与解决
- 分布式基础理论
- CAP理论:
- BASE理论:
- 2PC协议:
- 3PC协议:
- 一致性算法Paxos:
- 一致性协议Raft:
- 分布式事务
- happens-before
- Apache bench
- JMeter