操作系统、数据库、网络基础知识
本文主要用于后端开发工程师面试复习。
本篇为各概念的大概讲解,每个大部分的每个小部分我会单独发一条更加详细的讲解。如我会单独发一条(操作系统基础——进程与线程)。
具体请在我的博客里找。
#操作系统基础:
1.进程与线程:
进程:操作系统中独立运行的程序单位,每个进程有自己的地址空间和资源
线程:进程内的执行单位,共享进程的地址空间和资源。
关系:一个进程可以包含多个线程,线程之间共享内存,但进程之间是独立的。
2.内存管理:
分页:将内存分成固定大小的页,虚拟地址到物理地址的映射。
分段:内存按段管理,每段有不同的基址和长度,提供更灵活的内存管理。
虚拟内存:通过磁盘空间扩展物理内存,提供更大的地址空间。
3.文件系统:
文件系统结构:包括文件、目录、超级块、索引节点等。
文件权限:读、写、执行权限(r,w,x),用户、组、其他用户权限。
4.调度算法:
先来先服务(FCFS)
短作业优先(SJF)
轮转调度(Round Robin)
优先级调度(Priority Scheduling)
5.进程间通信(IPC):
管道(Pipe):单向通信。
消息队列(Message Queue):消息的队列,允许进程间异步通信。
共享内存(Shared Memory):多个进程共享同一块内存区域。
信号量(Semaphore):用于同步进程间的访问。
6.死锁:
条件:互斥、持有并等待、不剥夺、循环等待。
预防:避免四个必要条件中的一个或多个。
检测和恢复:检测死锁并采取措施恢复。
#数据库基础:
1.基本概念:
数据库:存储数据的集合
表:数据库中的数据结构,由行和列组成
行(记录):表中的一个数据项
列(字段):表中的一个属性
2.SQL语句:
查询: SELECT * FROM table_name WHERE condition;
插入: INSERT INTO table_name(column 1,column 2) VALUES(value 1,value 2);
更新: UPDATE table_name SET column 1 = value 1 WHERE condition;
删除: DELETE FROM table_name WHERE condition;
3.索引:
作用:用于加速数据库的查询操作,通过预先排序和优化数据存储,提高数据检索速度。
索引类似于书籍的目录,可以快速定位数据。
创建普通索引:最常见的索引类型,用于加速查询。
CREATE INDEX index_name ON table_name (column_name);
唯一索引:确保索引列的值唯一。
CREATE UNIQUE INDEX index_name ON table_name (column_name);
复合索引:在多个列上创建索引,用于加速复合查询。
CREATE INDEX index_name ON table_name (column 1,column 2);
删除索引: 删除不再需要的索引,释放资源。
DROP INDEX index_name ON table_name;
索引的使用注意事项:
选择性:索引适用于选择性很高的列,即列中的值有很多不同。
索引开销:索引会占用存储空间,并增加插入、删除和更新操作的时间开销。
覆盖索引:查询中包含的所有列都在索引中,可以避免回表操作,提高查询效率。
索引类型:
B树索引:最常见的索引结构,适用于大多数查询操作。适用于范围查询,平衡树结构。
B树索引保持数据的有序性,支持范围查询和排序操作。
哈希索引:
基于哈希表的数据结构,适用于等值查询('=')。适用于精确匹配。
哈希索引不适用于范围查询和排序操作。
全文索引:
适用于全文搜索,支持复杂的文本查询。
通过分词和倒排索引优化文本查询。
4.事务:
事务控制语句:'BEGIN TRANSACTION'、'COMMIT'、'ROLLBACK'。
隔离级别:
读未提交(Read Uncommitted):最低级别,可能会看到未提交的更改。
读已提交(Read Committed):只能看到已提交的更改,避免脏读。
可重复读(Repeatable Read):在一个事务内多次读取同一数据结果一致,避免不可重复读。
可序列化(Serializable):最高级别,完全隔离,避免幻读。
5.范式和反范式:
范式:规范化数据库结构,减少数据冗余。
第一范式(1NF):每列仅包含原子值。
第二范式(2NF):满足1NF,且每个非主键列完全依赖于主键。
第三范式(3NF):满足2NF,且每个非主键列不传递依赖于主键。
反范式:为了性能和查询效率,有时需要引入冗余数据。
#网络基础:
1.TCP/IP协议栈:
应用层:HTTP、HTTPS、FTP、SMTP等。
传输层:TCP(传输控制协议)、UDP(用户数据报协议)。
网络层:IP协议,路由和数据报转发。
链路层:以太网、Wi-Fi等。
2.HTTP和HTTPS:
HTTP:超文本传输协议,无状态协议。
HTTPS:HTTP的安全版本,通过SSL/TLS加密数据传输,确保安全性。
3.TCP和UDP:
TCP:面向连接,提供可靠的数据传输(握手过程、流控制、拥塞控制)。
UDP:无连接、提供不可靠的数据传输,适用于实时应用(如视频流、在线游戏)。
4.IP地址和子网:
IPv4地址:32位地址(如192.168.0.1)。
IPv6地址:128位地址,解决IPv4地址耗尽问题。
子网掩码:用于划分子网(如255.255.255.0)。