CS-Notes 知识清单 备战版

 

CS-Notes 知识清单 备战版

    • 前言
    • 清单
      • 3.1 操作系统基础
        • ★★★ 进程与线程的本质区别、以及各自的使用场景。
        • ★☆☆ 进程状态。
        • ★★★ 进程调度算法的特点以及使用场景。
        • ★☆☆ 线程实现的方式。
        • ★★☆ 协程的作用。
        • ★★☆ 常见进程同步问题。
        • ★★★ 进程通信方法的特点以及使用场景。
        • ★★★ 死锁必要条件、解决死锁策略,能写出和分析死锁的代码,能说明在数据库管理系统或者 Java 中如何解决死锁。
        • ★★★ 虚拟内存的作用,分页系统实现虚拟内存原理。
        • ★★★ 页面置换算法的原理,特别是 LRU 的实现原理,最好能手写,再说明它在 Redis 等作为缓存置换算法。
        • ★★★ 比较分页与分段的区别。
        • ★★★ 分析静态链接的不足,以及动态链接的特点。
      • 3.2 Linux
        • ★★☆ 文件系统的原理,特别是 inode 和 block。数据恢复原理。
        • ★★★ 硬链接与软链接的区别。
        • ★★☆ 能够使用常用的命令,比如 cat 文件内容查看、find 搜索文件,以及 cut、sort 等管线命令。了解 grep 和 awk 的作用。
        • ★★★ 僵尸进程与孤儿进程的区别,从 SIGCHLD 分析产生僵尸进程的原因。
      • 3.3 基础
        • ★★★ 各层协议的作用,以及 TCP/IP 协议的特点。
        • ★★☆ 以太网的特点,以及帧结构。
        • ★★☆ 集线器、交换机、路由器的作用,以及所属的网络层。
        • ★★☆ IP 数据数据报常见字段的作用。
        • ★☆☆ ARP 协议的作用,以及维护 ARP 缓存的过程。
        • ★★☆ ICMP 报文种类以及作用;和 IP 数据报的关系;Ping 和 Traceroute 的具体原理。
        • ★★★ UDP 与 TCP 比较,分析上层协议应该使用 UDP 还是 TCP。
        • ★★★ 理解三次握手以及四次挥手具体过程,三次握手的原因、四次挥手原因、TIME_WAIT 的作用。
        • ★★★ 可靠传输原理,并设计可靠 UDP 协议。
        • ★★☆ TCP 拥塞控制的作用,理解具体原理。
        • ★★☆ DNS 的端口号;TCP 还是 UDP;作为缓存、负载均衡。
      • 3.4 HTTP
        • ★★★ GET 与 POST 比较:作用、参数、安全性、幂等性、可缓存。
        • ★★☆ HTTP 状态码。
        • ★★★ Cookie 作用、安全性问题、和 Session 的比较。
        • ★★☆ 缓存 的Cache-Control 字段,特别是 Expires 和 max-age 的区别。ETag 验证原理。
        • ★★★ 长连接与短连接原理以及使用场景,流水线。
        • ★★★ HTTP 存在的安全性问题,以及 HTTPs 的加密、认证和完整性保护作用。
        • ★★☆ HTTP/1.x 的缺陷,以及 HTTP/2 的特点。
        • ★★★ HTTP/1.1 的特性。
        • ★★☆ HTTP 与 FTP 的比较。
      • 3.5 Socket
        • ★★☆ 五种 IO 模型的特点以及比较。
        • ★★★ select、poll、epoll 的原理、比较、以及使用场景;epoll 的水平触发与边缘触发。
      • 3.1 SQL
        • ★★☆ 手写 SQL 语句,特别是连接查询与分组查询。
        • ★★☆ 连接查询与子查询的比较。
        • ★★☆ drop、delete、truncate 比较。
        • ★★☆ 视图的作用,以及何时能更新视图。
        • ★☆☆ 理解存储过程、触发器等作用。
      • 3.2 系统原理
        • ★★★ ACID 的作用以及实现原理。
        • ★★★ 四大隔离级别,以及不可重复读和幻影读的出现原因。
        • ★★☆ *的类型以及粒度,两段锁协议,隐式和显示锁定。
        • ★★★ 乐观锁与悲观锁。
        • ★★★ MVCC 原理,当前读以及快照读,Next-Key Locks 解决幻影读。
        • ★★☆ 范式理论。
        • ★★★ SQL 与 NoSQL 的比较。
      • 3.3 MySQL
        • ★★★ B+ Tree 原理,与其它查找树的比较。
        • ★★★ MySQL 索引以及优化。
        • ★★★ 查询优化。
        • ★★★ InnoDB 与 MyISAM 比较。
        • ★★☆ 水平切分与垂直切分。
        • ★★☆ 主从复制原理、作用、实现。
        • ★☆☆ redo、undo、binlog 日志的作用。
      • 3.4 Redis
        • ★★☆ 字典和跳跃表原理分析。
        • ★★★ 使用场景。
        • ★★★ 与 Memchached 的比较。
        • ★☆☆ 数据淘汰机制。
        • ★★☆ RDB 和 AOF 持久化机制。
        • ★★☆ 事件驱动模型。
        • ★☆☆ 主从复制原理。
        • ★★★ 集群与分布式。
        • ★★☆ 事务原理。
        • ★★★ 线程安全问题。
      • 3.1 设计模式
        • ★☆☆ 面向对象三大特性
        • ★★★ 手写单例模式,特别是双重检验锁以及静态内部类。
        • ★★☆ 手写工厂模式。
        • ★★★ 理解 MVC,结合 SpringMVC 回答。
        • ★★★ 理解代理模式,结合 Spring 中的 AOP 回答。
        • ★★☆ 分析 JDK 中常用的设计模式,例如装饰者模式、适配器模式、迭代器模式等。
      • 3.2 分布式
        • ★★★ 分布式锁
        • ★★★ 分布式事务
        • ★★★ 分布式 Session
        • ★★★ CAP
        • ★★☆ Raft 与 Paxos
        • ★★★ 负载均衡
        • ★★★ 限流
      • 3.3 系统设计应用
        • ★★☆ 扫二维码登陆过程
        • ★★☆ 短网址系统
      • 3.4 其它
        • ★★★ 缓存
        • ★★★ 消息队列

 

前言

CS-Notes
寒假期间一直在看cyc2018 分享的 计算机知识笔记CS-Notes 800多页 量太大了
买了cyc2018在牛客和别的平台的一些 专栏
看到 cyc 分享了一些知识清单 我自己再拿来搜集一些答案 用来备战

清单

先把 flag 立下
期末考试考完了我再来补坑

3.1 操作系统基础

★★★ 进程与线程的本质区别、以及各自的使用场景。

★☆☆ 进程状态。

★★★ 进程调度算法的特点以及使用场景。

★☆☆ 线程实现的方式。

★★☆ 协程的作用。

★★☆ 常见进程同步问题。

★★★ 进程通信方法的特点以及使用场景。

★★★ 死锁必要条件、解决死锁策略,能写出和分析死锁的代码,能说明在数据库管理系统或者 Java 中如何解决死锁。

★★★ 虚拟内存的作用,分页系统实现虚拟内存原理。

★★★ 页面置换算法的原理,特别是 LRU 的实现原理,最好能手写,再说明它在 Redis 等作为缓存置换算法。

★★★ 比较分页与分段的区别。

★★★ 分析静态链接的不足,以及动态链接的特点。

3.2 Linux

★★☆ 文件系统的原理,特别是 inode 和 block。数据恢复原理。

★★★ 硬链接与软链接的区别。

★★☆ 能够使用常用的命令,比如 cat 文件内容查看、find 搜索文件,以及 cut、sort 等管线命令。了解 grep 和 awk 的作用。

★★★ 僵尸进程与孤儿进程的区别,从 SIGCHLD 分析产生僵尸进程的原因。

3.3 基础

★★★ 各层协议的作用,以及 TCP/IP 协议的特点。

★★☆ 以太网的特点,以及帧结构。

★★☆ 集线器、交换机、路由器的作用,以及所属的网络层。

★★☆ IP 数据数据报常见字段的作用。

★☆☆ ARP 协议的作用,以及维护 ARP 缓存的过程。

★★☆ ICMP 报文种类以及作用;和 IP 数据报的关系;Ping 和 Traceroute 的具体原理。

★★★ UDP 与 TCP 比较,分析上层协议应该使用 UDP 还是 TCP。

★★★ 理解三次握手以及四次挥手具体过程,三次握手的原因、四次挥手原因、TIME_WAIT 的作用。

★★★ 可靠传输原理,并设计可靠 UDP 协议。

★★☆ TCP 拥塞控制的作用,理解具体原理。

★★☆ DNS 的端口号;TCP 还是 UDP;作为缓存、负载均衡。

3.4 HTTP

★★★ GET 与 POST 比较:作用、参数、安全性、幂等性、可缓存。

★★☆ HTTP 状态码。

★★★ Cookie 作用、安全性问题、和 Session 的比较。

★★☆ 缓存 的Cache-Control 字段,特别是 Expires 和 max-age 的区别。ETag 验证原理。

★★★ 长连接与短连接原理以及使用场景,流水线。

★★★ HTTP 存在的安全性问题,以及 HTTPs 的加密、认证和完整性保护作用。

★★☆ HTTP/1.x 的缺陷,以及 HTTP/2 的特点。

★★★ HTTP/1.1 的特性。

★★☆ HTTP 与 FTP 的比较。

3.5 Socket

★★☆ 五种 IO 模型的特点以及比较。

★★★ select、poll、epoll 的原理、比较、以及使用场景;epoll 的水平触发与边缘触发。

3.1 SQL

★★☆ 手写 SQL 语句,特别是连接查询与分组查询。

★★☆ 连接查询与子查询的比较。

★★☆ drop、delete、truncate 比较。

★★☆ 视图的作用,以及何时能更新视图。

★☆☆ 理解存储过程、触发器等作用。

3.2 系统原理

★★★ ACID 的作用以及实现原理。

★★★ 四大隔离级别,以及不可重复读和幻影读的出现原因。

★★☆ *的类型以及粒度,两段锁协议,隐式和显示锁定。

★★★ 乐观锁与悲观锁。

★★★ MVCC 原理,当前读以及快照读,Next-Key Locks 解决幻影读。

★★☆ 范式理论。

★★★ SQL 与 NoSQL 的比较。

3.3 MySQL

★★★ B+ Tree 原理,与其它查找树的比较。

★★★ MySQL 索引以及优化。

★★★ 查询优化。

★★★ InnoDB 与 MyISAM 比较。

★★☆ 水平切分与垂直切分。

★★☆ 主从复制原理、作用、实现。

★☆☆ redo、undo、binlog 日志的作用。

3.4 Redis

★★☆ 字典和跳跃表原理分析。

★★★ 使用场景。

★★★ 与 Memchached 的比较。

★☆☆ 数据淘汰机制。

★★☆ RDB 和 AOF 持久化机制。

★★☆ 事件驱动模型。

★☆☆ 主从复制原理。

★★★ 集群与分布式。

★★☆ 事务原理。

★★★ 线程安全问题。

3.1 设计模式

★☆☆ 面向对象三大特性

★★★ 手写单例模式,特别是双重检验锁以及静态内部类。

★★☆ 手写工厂模式。

★★★ 理解 MVC,结合 SpringMVC 回答。

★★★ 理解代理模式,结合 Spring 中的 AOP 回答。

★★☆ 分析 JDK 中常用的设计模式,例如装饰者模式、适配器模式、迭代器模式等。

3.2 分布式

★★★ 分布式锁

★★★ 分布式事务

★★★ 分布式 Session

★★★ CAP

★★☆ Raft 与 Paxos

★★★ 负载均衡

★★★ 限流

3.3 系统设计应用

★★☆ 扫二维码登陆过程

★★☆ 短网址系统

3.4 其它

★★★ 缓存

★★★ 消息队列

 

上一篇:Artificial Intelligence: A Modern Approach Notes


下一篇:【Notes】# 使用Github+hexo创建个人博客