Code Monkey home page Code Monkey logo

cs-notes-pdf's Introduction

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 把很多文件都拆开了(也打上了自己公众号的信息),对我更新仓库来说太麻烦了。

额外资料推荐

品牌衣服一折购

简历

电子书索引区

绘图工具

  • cloudcraft:Visualize your cloud architecture like a pro.


分割线

以下就可耻的抄袭原有仓库的内容介绍吧

算法✏️ 操作系统💻 网络☁️ 面向对象👫 数据库💾 Java 系统设计💡 工具🔨 编码实践🙊 后记📝

✏️ 算法

💻 操作系统

☁️ 网络

👫 面向对象

💾 数据库

☕ Java

💡 系统设计

🔨 工具

🙊 编码实践

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. 删除目录

<!-- GFM-TOC -->
***
<!-- GFM-TOC -->

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 = "<img src=\"https://latex.codecogs.com/gif.latex?.*?\"/>";
    Pattern pattern = Pattern.compile(templete);
    String testStr = "为每个用户分配 m bit 的码片,并且所有的码片正交,对于任意两个码片 <img src=\"https://latex.codecogs.com/gif.latex?\\vec{S}\"/> 和 <img src=\"https://latex.codecogs.com/gif.latex?\\vec{T}\"/> 有";

    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);

}

cs-notes-pdf's People

Contributors

sjsdfg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cs-notes-pdf's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.