2. 操作系统
2.1 基础
- ★★★ 进程与线程的本质区别、以及各自的使用场景。
进程是操作系统资源分配的基本单位,线程是操作系统调度的最小单位,一个进程可以中可以有多个线程,线程依赖于进程存在。
阻塞,就绪,运行,
先来先服务,短作业优先,时间片轮转等
用户级线程,没有上下文切换
加锁
管道,消息队列,共享内存,
- ★★★ 死锁必要条件、解决死锁策略,能写出和分析死锁的代码,能说明在数据库管理系统或者 Java 中如何解决死锁。
1. 互斥条件
2. 保持与请求
2. 不可剥夺
3. 循环等待
- ★★★ 虚拟内存的作用,分页系统实现虚拟内存原理。
- ★★★ 页面置换算法的原理,特别是 LRU 的实现原理,最好能手写,再说明它在 Redis 等作为缓存置换算法。
- ★★★ 比较分页与分段的区别。
- ★★★ 分析静态链接的不足,以及动态链接的特点。
2.2 Linux
- ★★☆ 文件系统的原理,特别是 inode 和 block。数据恢复原理。
- ★★★ 硬链接与软链接的区别。
- ★★☆ 能够使用常用的命令,比如 cat 文件内容查看、find 搜索文件,以及 cut、sort 等管线命令。了解 grep 和 awk 的作用。
- ★★★ 僵尸进程与孤儿进程的区别,从 SIGCHLD 分析产生僵尸进程的原因。
☁️
3. 网络
3.1 基础
- ★★★ 各层协议的作用,以及 TCP/IP 协议的特点。
- ★★☆ 以太网的特点,以及帧结构。
- ★★☆ 集线器、交换机、路由器的作用,以及所属的网络层。
- ★★☆ IP 数据数据报常见字段的作用。
- ★☆☆ ARP 协议的作用,以及维护 ARP 缓存的过程。
- ★★☆ ICMP 报文种类以及作用;和 IP 数据报的关系;Ping 和 Traceroute 的具体原理。
- ★★★ UDP 与 TCP 比较,分析上层协议应该使用 UDP 还是 TCP。
- ★★★ 理解三次握手以及四次挥手具体过程,三次握手的原因、四次挥手原因、TIME_WAIT 的作用。
- ★★★ 可靠传输原理,并设计可靠 UDP 协议。
- ★★☆ TCP 拥塞控制的作用,理解具体原理。
- ★★☆ DNS 的端口号;TCP 还是 UDP;作为缓存、负载均衡。
3.2 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.3 Socket
- ★★☆ 五种 IO 模型的特点以及比较。
- ★★★ select、poll、epoll 的原理、比较、以及使用场景;epoll 的水平触发与边缘触发。
?
4. 数据库
4.1 SQL
- ★★☆ 手写 SQL 语句,特别是连接查询与分组查询。
- ★★☆ 连接查询与子查询的比较。
- ★★☆ drop、delete、truncate 比较。
- ★★☆ 视图的作用,以及何时能更新视图。
- ★☆☆ 理解存储过程、触发器等作用。
4.2 系统原理
- ★★★ ACID 的作用以及实现原理。
- ★★★ 四大隔离级别,以及不可重复读和幻影读的出现原因。
- ★★☆ 封锁的类型以及粒度,两段锁协议,隐式和显示锁定。
- ★★★ 乐观锁与悲观锁。
- ★★★ MVCC 原理,当前读以及快照读,Next-Key Locks 解决幻影读。
- ★★☆ 范式理论。
三范式
4.3 MySQL
- ★★★ B+ Tree 原理,与其它查找树的比较。
- ★☆☆ redo、undo、binlog 日志的作用。
4.4 Redis
zset底层是跳跃表
缓存
- ★★★ 与 Memchached 的比较。
- ★☆☆ 数据淘汰机制。
- ★★☆ RDB 和 AOF 持久化机制。
- ★★☆ 事件驱动模型。
- ★☆☆ 主从复制原理。
- ★★★ 集群与分布式。
- ★★☆ 事务原理。
- ★★★ 线程安全问题。
?
5. 面向对象
5.1 思想
封装,继承,多态
六个原则
5.2 设计模式
- ★★☆ 设计模式的作用。
- ★★★ 手写单例模式,特别是双重检验锁以及静态内部类。
Java 的线程安全懒汉式单例
- ★★★ 手写工厂模式。
- ★★★ 理解 MVC,结合 SpringMVC 回答。
- ★★★ 理解代理模式,结合 Spring 中的 AOP 回答。
- ★★★ 分析 JDK 中常用的设计模式,例如装饰者模式、适配器模式、迭代器模式等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)