https://github.com/sjsdfg/cs-notes-pdf
https://github.com/CyC2018/CS-Notes PDF版本离线阅读
https://github.com/sjsdfg/cs-notes-pdf
coding-interviews
Last synced: 26 days ago
JSON representation
https://github.com/CyC2018/CS-Notes PDF版本离线阅读
- Host: GitHub
- URL: https://github.com/sjsdfg/cs-notes-pdf
- Owner: sjsdfg
- Created: 2018-06-27T14:25:11.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2025-02-22T10:30:53.000Z (4 months ago)
- Last Synced: 2025-04-10T11:02:01.380Z (about 2 months ago)
- Topics: coding-interviews
- Homepage:
- Size: 82.5 MB
- Stars: 2,601
- Watchers: 130
- Forks: 780
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CS-Notes-PDF
用于提供 https://github.com/CyC2018/CS-Notes 项目的离线阅读
**pdf 使用 cmd-markdown 的付费工具手工进行 pdf 的转换。**
原作者已经制作好 gitbook 地址:https://legacy.gitbook.com/book/cyc2018/interview-notebook/details
~~**那么为什么还需要本仓库?**
我个人认为**cmd-markdown 工具所转化的 pdf**相比 gitbook 直接生成的 pdf 拥有**更好的阅读体验!**~~项目不更新了。原有 repo 已经开始提供自制 pdf 功能了。
而且现在原有 repo 把很多文件都拆开了(也打上了自己公众号的信息),对我更新仓库来说太麻烦了。# 额外资料推荐
- 新增[机器学习小抄 ](https://pan.baidu.com/s/1XvwRLqgAnUtMqjNsJT-wTQ), 文件较大,已放在百度云盘。不过 README 一般也没啥人看,就当个小彩蛋?
- 新增[深度学习 500 问 ](https://github.com/scutan90/DeepLearning-500-questions)
- [100-Days-Of-ML-Code 中文版 ](https://github.com/MLEveryday/100-Days-Of-ML-Code)
- [阿里 Java 手册 1.4.0 版本 ](https://pan.baidu.com/s/1le0nvGP6GIpnczOZldrBGQ)
- [计算机网络-自顶向下 第七版英文原版 ](https://pan.baidu.com/s/1VPzcjXc0TR1SPIkexM1YTw)
- [用动画的形式呈现解LeetCode题目的思路](https://github.com/MisterBooo/LeetCodeAnimation)
- [effective-java 第三版中文开源翻译](https://github.com/sjsdfg/effective-java-3rd-chinese)
- [深入理解操作系统 第三版英文版原版-CSAPP 3rd](https://pan.baidu.com/s/1yJLb6EHRa0bjka7ryfr6mw)
- [【精校中英字幕】2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频](https://www.bilibili.com/video/av31289365)
- [《机器学习》(西瓜书)公式推导解析](https://github.com/datawhalechina/pumpkin-book)
- [Treen Pool](http://treenpool.com/#/home):知识体系分享网站(脑图分享)
- [从程序员到CTO,从专业走向卓越,企业内部分享文档pdf与PPT整理](https://github.com/0voice/from_coder_to_expert)# 简历
- [冷熊简历](http://cv.ftqq.com/)
- [简历模板](https://github.com/geekcompany/ResumeSample)
# 电子书索引区- https://github.com/royeo/awesome-programming-books
- https://salttiger.com/
- https://www.foxebook.net/
- https://www.jiumodiary.com/
- [免费优质电子书下载](https://epubw.com/)
- http://www.allitebooks.org/
- http://www.dcsdn.com/# 绘图工具
- [cloudcraft](https://cloudcraft.co/):Visualize your cloud architecture like a pro.
---
分割线
以下就可耻的抄袭原有仓库的内容介绍吧
| Ⅰ | Ⅱ | Ⅲ | Ⅳ | Ⅴ | Ⅵ | Ⅶ | Ⅷ | Ⅸ | Ⅹ |
| :--------: | :---------: | :---------: | :---------: | :---------: | :---------:| :---------: | :-------: | :-------:| :------:|
| 算法[:pencil2:](#算法-pencil2) | 操作系统[:computer:](#操作系统-computer)|网络[:cloud:](#网络-cloud) | 面向对象[:couple:](#面向对象-couple) |数据库[:floppy_disk:](#数据库-floppy_disk)| Java [:coffee:](#java-coffee)| 系统设计[:bulb:](#系统设计-bulb)| 工具[:hammer:](#工具-hammer)| 编码实践[:speak_no_evil:](#编码实践-speak_no_evil)| 后记[:memo:](#后记-memo) |### :pencil2: 算法
- [剑指 Offer 题解](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/剑指%20offer%20题解.md)
- [Leetcode 题解](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Leetcode%20题解.md)
- [算法](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/算法.md)### :computer: 操作系统
- [计算机操作系统](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/计算机操作系统.md)
- [Linux](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Linux.md)### :cloud: 网络
- [计算机网络](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/计算机网络.md)
- [HTTP](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/HTTP.md)
- [Socket](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Socket.md)### :couple: 面向对象
- [设计模式](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/设计模式.md)
- [面向对象思想](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/面向对象思想.md)### :floppy_disk: 数据库
- [数据库系统原理](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/数据库系统原理.md)
- [SQL](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/SQL.md)
- [Leetcode-Database 题解](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Leetcode-Database%20题解.md)
- [MySQL](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/MySQL.md)
- [Redis](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Redis.md)### :coffee: Java
- [Java 基础](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20基础.md)
- [Java 容器](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20容器.md)
- [Java 并发](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20并发.md)
- [Java 虚拟机](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20虚拟机.md)
- [Java I/O](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20IO.md)### :bulb: 系统设计
- [系统设计基础](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/系统设计基础.md)
- [分布式](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/分布式.md)
- [集群](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/集群.md)
- [攻击技术](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/攻击技术.md)
- [缓存](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/缓存.md)
- [消息队列](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/消息队列.md)### :hammer: 工具
- [Git](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Git.md)
- [Docker](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Docker.md)
- [构建工具](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/构建工具.md)
- [正则表达式](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/正则表达式.md)### :speak_no_evil: 编码实践
- [代码可读性](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/代码可读性.md)
- [代码风格规范](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/代码风格规范.md)## Java Programer Suggestion
在 Java 中除了最为基础的东西之外,你只要看三样东西就可以了:
Java 中有三大支柱,在 java.util.concurrent、java.security、javax.cropty、javax.security 四个包中就占了两个(多线程、安全)
还有一个网络在 java.net、javax.net 中,呵呵
掌握了上面 6 个包及其子包中内容的话,那 Java 水平可以说达到了另一种境界。
PS:三大支柱是我之前给 Java 中多线程、网络和安全取的代号,嘿嘿
这三样中的东西非常多,基本上就是 Java 的核心所在。
**多线程(multi-threading and concurrent)**
1. 关键词:volatile, sychronized
2. 传统的线程 API:java.lang.Thread, java.lang.Runnable, java.lang.ThreadGroup, Object#wait, Object#notify, Object#notifyAll
3. JDK 5 并发包(java.util.concurrent)API:线程池、任务执行器、计数信号量、倒计数门闩、并发集合(并发 Map、阻塞队列等)、基于 CPU CAS 指令的原子 API(java.util.concurrent.atomic)、锁 API(java.util.concurrent.lock)和条件对象等。
4. 作为个人知识提升,还需要理解诸如自旋锁、分离锁、分拆锁、读写锁等的同步锁策略,以及可重入锁、锁的公平性的意义。以及各种并发锁的算法,比如:Peterson锁、Bakery锁 等等,以及现代 CPU 体系结构涉及多线程及并发的 API 在 java.lang 中及 java.util.concurrent.* 中。
**网络(network communication)**
1. 阻塞 TCP 通信、阻塞 UDP 通信、组播
2. 非阻塞 TCP 通信、非阻塞 UDP 通信
3. 客户端通信 API(java.net.URL, java.net.URLConnection 等类库)涉及网络通信的 API 都在 java.net 和 java.nio.channels 包中。这里的网络已经将 RMI 相关包 java.rmi, javax.rmi 都排除了。
**安全(security, cryptography and AAA)**
1. Java 加密类库 JCA
2. Java 加密类库扩展 JCE
3. 涉及密码学知识点的消息摘要、消息认证码、对称加密、非对称加密、数字签名
4. 涉及网络通信证书管理工具(keytool)及 API(PKI、X.509证书)
5. 基于 SSL/TLS 的安全网络通信 API(JSSE),包括:密钥库管理、信任库管理、阻塞 SSL 通信和非阻塞 SSL 通信等等
6. Java 认证及授权服务(JAAS)API涉及安全的东西都在:
- java.security(JCA、JCE、数字证书,以及 JCE 的 SPI)
- javax.net(SSL/TLS)
- javax.security(JAAS)
- javax.crypto(密码学)
- keytool 的 JDK 工具---
# 文档转换步骤
## 1. 删除目录
```***
```
## 2. 字符串替换
### 2.1 图像路径替换
对于所有的图片地址进行替换
例如:
`src="../pics//f5757d09-88e7-4bbd-8cfb-cecf55604854.png"`
替换为
`src="https://github.com/CyC2018/Interview-Notebook/raw/master/pics/f5757d09-88e7-4bbd-8cfb-cecf55604854.png"`
### 2.2 图像宽度替换
所有的`width=""`都需要删除
使用正则表达式 `width="[0-9]*"`进行替换### 2.3 公式替换
所有公式需要替换为遵守 `MathJax`语法,代码为```
public static void main(String[] args) {
// 使用最小匹配
String templete = "";
Pattern pattern = Pattern.compile(templete);
String testStr = "为每个用户分配 m bit 的码片,并且所有的码片正交,对于任意两个码片和
有";
Matcher matcher = pattern.matcher(testStr);
while (matcher.find()) {
String str = matcher.group(0);
System.out.println(str);String newStr = str.substring(str.indexOf("?") + 1, str.length() - 3);
System.out.println("$" + newStr + "$");testStr = testStr.replace(str, "$" + newStr + "$");
}System.out.println(testStr);
}
```