{"id":16881541,"url":"https://github.com/sjsdfg/cs-notes-pdf","last_synced_at":"2025-05-14T04:08:01.631Z","repository":{"id":40596850,"uuid":"138892435","full_name":"sjsdfg/CS-Notes-PDF","owner":"sjsdfg","description":"https://github.com/CyC2018/CS-Notes PDF版本离线阅读","archived":false,"fork":false,"pushed_at":"2025-02-22T10:30:53.000Z","size":86505,"stargazers_count":2601,"open_issues_count":2,"forks_count":780,"subscribers_count":130,"default_branch":"master","last_synced_at":"2025-04-10T11:02:01.380Z","etag":null,"topics":["coding-interviews"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sjsdfg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-27T14:25:11.000Z","updated_at":"2025-04-09T11:02:47.000Z","dependencies_parsed_at":"2025-03-20T03:48:14.263Z","dependency_job_id":null,"html_url":"https://github.com/sjsdfg/CS-Notes-PDF","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjsdfg%2FCS-Notes-PDF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjsdfg%2FCS-Notes-PDF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjsdfg%2FCS-Notes-PDF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjsdfg%2FCS-Notes-PDF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sjsdfg","download_url":"https://codeload.github.com/sjsdfg/CS-Notes-PDF/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254069473,"owners_count":22009557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coding-interviews"],"created_at":"2024-10-13T16:03:24.876Z","updated_at":"2025-05-14T04:07:56.591Z","avatar_url":"https://github.com/sjsdfg.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# CS-Notes-PDF\n\n用于提供 https://github.com/CyC2018/CS-Notes 项目的离线阅读\n\n**pdf 使用 cmd-markdown 的付费工具手工进行 pdf 的转换。**\n\n原作者已经制作好 gitbook 地址：https://legacy.gitbook.com/book/cyc2018/interview-notebook/details\n\n~~**那么为什么还需要本仓库？**\n我个人认为**cmd-markdown 工具所转化的 pdf**相比 gitbook 直接生成的 pdf 拥有**更好的阅读体验！**~~\n\n项目不更新了。原有 repo 已经开始提供自制 pdf 功能了。\n而且现在原有 repo 把很多文件都拆开了（也打上了自己公众号的信息），对我更新仓库来说太麻烦了。\n\n# 额外资料推荐\n\n- 新增[机器学习小抄 ](https://pan.baidu.com/s/1XvwRLqgAnUtMqjNsJT-wTQ), 文件较大，已放在百度云盘。不过 README 一般也没啥人看，就当个小彩蛋？ \n- 新增[深度学习 500 问 ](https://github.com/scutan90/DeepLearning-500-questions)\n- [100-Days-Of-ML-Code 中文版 ](https://github.com/MLEveryday/100-Days-Of-ML-Code)\n- [阿里 Java 手册 1.4.0 版本 ](https://pan.baidu.com/s/1le0nvGP6GIpnczOZldrBGQ)\n- [计算机网络-自顶向下  第七版英文原版 ](https://pan.baidu.com/s/1VPzcjXc0TR1SPIkexM1YTw)\n- [用动画的形式呈现解LeetCode题目的思路](https://github.com/MisterBooo/LeetCodeAnimation)\n- [effective-java 第三版中文开源翻译](https://github.com/sjsdfg/effective-java-3rd-chinese)\n- [深入理解操作系统 第三版英文版原版-CSAPP 3rd](https://pan.baidu.com/s/1yJLb6EHRa0bjka7ryfr6mw)\n- [【精校中英字幕】2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频](https://www.bilibili.com/video/av31289365)\n- [《机器学习》（西瓜书）公式推导解析](https://github.com/datawhalechina/pumpkin-book)\n- [Treen Pool](http://treenpool.com/#/home)：知识体系分享网站（脑图分享）\n- [从程序员到CTO，从专业走向卓越，企业内部分享文档pdf与PPT整理](https://github.com/0voice/from_coder_to_expert)\n\n# 简历\n \n - [冷熊简历](http://cv.ftqq.com/)\n - [简历模板](https://github.com/geekcompany/ResumeSample)\n \n# 电子书索引区\n\n- https://github.com/royeo/awesome-programming-books  \n- https://salttiger.com/\n- https://www.foxebook.net/\n- https://www.jiumodiary.com/\n- [免费优质电子书下载](https://epubw.com/)\n- http://www.allitebooks.org/\n- http://www.dcsdn.com/\n\n# 绘图工具\n\n - [cloudcraft](https://cloudcraft.co/)：Visualize your cloud architecture like a pro.\n\n---\n\n分割线\n\n以下就可耻的抄袭原有仓库的内容介绍吧\n\n| Ⅰ | Ⅱ | Ⅲ | Ⅳ | Ⅴ | Ⅵ | Ⅶ | Ⅷ | Ⅸ | Ⅹ |\n| :--------: | :---------: | :---------: | :---------: | :---------: | :---------:| :---------: | :-------: | :-------:| :------:|\n| 算法[: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) |\n\n### :pencil2: 算法\n\n- [剑指 Offer 题解](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/剑指%20offer%20题解.md)\n- [Leetcode 题解](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Leetcode%20题解.md)\n- [算法](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/算法.md)\n\n### :computer: 操作系统\n\n- [计算机操作系统](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/计算机操作系统.md)\n- [Linux](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Linux.md)\n\n### :cloud: 网络 \n\n- [计算机网络](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/计算机网络.md)\n- [HTTP](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/HTTP.md)\n- [Socket](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Socket.md)\n\n### :couple: 面向对象\n\n- [设计模式](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/设计模式.md)\n- [面向对象思想](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/面向对象思想.md)\n\n### :floppy_disk: 数据库 \n\n- [数据库系统原理](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/数据库系统原理.md)\n- [SQL](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/SQL.md)\n- [Leetcode-Database 题解](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Leetcode-Database%20题解.md)\n- [MySQL](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/MySQL.md)\n- [Redis](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Redis.md)\n\n### :coffee: Java\n\n- [Java 基础](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20基础.md)\n- [Java 容器](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20容器.md)\n- [Java 并发](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20并发.md)\n- [Java 虚拟机](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20虚拟机.md)\n- [Java I/O](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20IO.md)\n\n### :bulb: 系统设计 \n\n- [系统设计基础](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/系统设计基础.md)\n- [分布式](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/分布式.md)\n- [集群](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/集群.md)\n- [攻击技术](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/攻击技术.md)\n- [缓存](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/缓存.md)\n- [消息队列](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/消息队列.md)\n\n### :hammer: 工具 \n\n- [Git](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Git.md)\n- [Docker](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Docker.md)\n- [构建工具](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/构建工具.md)\n- [正则表达式](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/正则表达式.md)\n\n### :speak_no_evil: 编码实践 \n\n- [代码可读性](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/代码可读性.md)\n- [代码风格规范](https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/代码风格规范.md)\n\n\n## Java Programer Suggestion\n\n\n在 Java 中除了最为基础的东西之外，你只要看三样东西就可以了：\n\nJava 中有三大支柱，在 java.util.concurrent、java.security、javax.cropty、javax.security 四个包中就占了两个（多线程、安全）\n\n还有一个网络在 java.net、javax.net 中，呵呵\n\n掌握了上面 6 个包及其子包中内容的话，那 Java 水平可以说达到了另一种境界。\n\nPS：三大支柱是我之前给 Java 中多线程、网络和安全取的代号，嘿嘿\n\n这三样中的东西非常多，基本上就是 Java 的核心所在。\n\n**多线程（multi-threading and concurrent）**\n\n1. 关键词：volatile, sychronized\n2. 传统的线程 API：java.lang.Thread, java.lang.Runnable, java.lang.ThreadGroup, Object#wait, Object#notify, Object#notifyAll\n3. JDK 5 并发包（java.util.concurrent）API：线程池、任务执行器、计数信号量、倒计数门闩、并发集合（并发 Map、阻塞队列等）、基于 CPU CAS 指令的原子 API（java.util.concurrent.atomic）、锁 API（java.util.concurrent.lock）和条件对象等。\n4. 作为个人知识提升，还需要理解诸如自旋锁、分离锁、分拆锁、读写锁等的同步锁策略，以及可重入锁、锁的公平性的意义。以及各种并发锁的算法，比如：Peterson锁、Bakery锁 等等，以及现代 CPU 体系结构\n\n涉及多线程及并发的 API 在 java.lang 中及 java.util.concurrent.* 中。\n\n**网络（network communication）**\n\n1. 阻塞 TCP 通信、阻塞 UDP 通信、组播\n2. 非阻塞 TCP 通信、非阻塞 UDP 通信\n3. 客户端通信 API（java.net.URL, java.net.URLConnection 等类库）\n\n涉及网络通信的 API 都在 java.net 和 java.nio.channels 包中。这里的网络已经将 RMI 相关包 java.rmi, javax.rmi 都排除了。\n\n**安全（security, cryptography and AAA）**\n\n1. Java 加密类库 JCA\n2. Java 加密类库扩展 JCE\n3. 涉及密码学知识点的消息摘要、消息认证码、对称加密、非对称加密、数字签名\n4. 涉及网络通信证书管理工具（keytool）及 API（PKI、X.509证书）\n5. 基于 SSL/TLS 的安全网络通信 API（JSSE），包括：密钥库管理、信任库管理、阻塞 SSL 通信和非阻塞 SSL 通信等等\n6. Java 认证及授权服务（JAAS）API\n\n涉及安全的东西都在：\n\n- java.security（JCA、JCE、数字证书，以及 JCE 的 SPI）\n- javax.net（SSL/TLS）\n- javax.security（JAAS）\n- javax.crypto（密码学）\n- keytool 的 JDK 工具 \n\n---\n\n\n# 文档转换步骤 \n\n## 1. 删除目录\n```\n\u003c!-- GFM-TOC --\u003e\n***\n\u003c!-- GFM-TOC --\u003e\n```\n\n## 2. 字符串替换\n\n### 2.1 图像路径替换\n\n对于所有的图片地址进行替换\n\n例如：\n\n`src=\"../pics//f5757d09-88e7-4bbd-8cfb-cecf55604854.png\"`\n\n替换为 \n\n`src=\"https://github.com/CyC2018/Interview-Notebook/raw/master/pics/f5757d09-88e7-4bbd-8cfb-cecf55604854.png\"`\n\n### 2.2 图像宽度替换\n\n所有的`width=\"\"`都需要删除\n使用正则表达式 `width=\"[0-9]*\"`进行替换\n\n### 2.3 公式替换\n所有公式需要替换为遵守 `MathJax`语法，代码为\n\n```\npublic static void main(String[] args) {\n    // 使用最小匹配\n    String templete = \"\u003cimg src=\\\"https://latex.codecogs.com/gif.latex?.*?\\\"/\u003e\";\n    Pattern pattern = Pattern.compile(templete);\n    String testStr = \"为每个用户分配 m bit 的码片，并且所有的码片正交，对于任意两个码片 \u003cimg src=\\\"https://latex.codecogs.com/gif.latex?\\\\vec{S}\\\"/\u003e 和 \u003cimg src=\\\"https://latex.codecogs.com/gif.latex?\\\\vec{T}\\\"/\u003e 有\";\n\n    Matcher matcher = pattern.matcher(testStr);\n\n    while (matcher.find()) {\n        String str = matcher.group(0);\n        System.out.println(str);\n\n        String newStr = str.substring(str.indexOf(\"?\") + 1, str.length() - 3);\n        System.out.println(\"$\" + newStr + \"$\");\n\n        testStr = testStr.replace(str, \"$\" + newStr + \"$\");\n    }\n\n    System.out.println(testStr);\n\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjsdfg%2Fcs-notes-pdf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsjsdfg%2Fcs-notes-pdf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjsdfg%2Fcs-notes-pdf/lists"}