从2月26日至今,已经过去半个月的时间了,目前简历已经定型了,之后只需要修改项目即可。

我目前的工作可以总结为以下几点。

  • 项目相关
  • 刷题相关
  • 八股文相关

项目相关

目前我的简历上存在三个项目,其中一个是本科毕业设计,一个是软件著作权项目,一个是github上的项目。目前这几个项目不太行,需要修改如下:

  1. 动手搭建一个基于Reactor架构的Web服务器,这个项目目前github上很多,这需要理解其中含义,动手写一遍即可。
  2. 基于Protobuf的RPC通信框架,这个需要了解Protobuf和RPC的知识。
  3. IM即时通讯后端服务器部分。

刷题相关

目前了解的常用的数据结构:

  • 数组: 动态数组(vector的扩容和缩容)
  • 链表: 双向链表、循环链表
  • 栈: 单调栈(栈顶元素是最大的,栈中元素单调有序)
  • 队列: 双端队列、单调队列、优先队列(完全二叉堆、删除堆顶下滤、新增元素上滤、建堆Floyd)
  • 二叉树: 二叉搜索树(二叉排序树BST)、平衡二叉树(AVL、左旋,右旋,左右旋,右左旋)
  • 图: 最短路径(找到两个点之间的权值最小的路径)、最小生成树(可在连通图中找到权值最小的链接每个点的路径,即生成树)、并查集(检查图中是否有环)、树状数组(logn的求区间和)、线段树

目前了解的常用的算法:

  • 动态规划、01背包、完全背包、多重背包、混合背包
  • N皇后(栈和回溯)
  • 最小生成树的算法(Prim算法和Kruskal算法)
  • tarjan求有向图的强连通分量
  • 二叉树的前中后序遍历
  • DFS(递归和栈的方式)
  • BFS(队列的方式)
  • 双指针
  • 滑动窗口
  • KMP
  • 十大排序算法(快速排序、堆排序、计数排序、希尔排序、桶排序、基数排序、插入排序、选择排序、冒泡排序、归并排序)

八股文相关

计算机网络

OSI七层模型和TCP/IP四层模型

数据链路层协议Ethernet

网络层协议 IP协议的包头Header

了解了TCP的三次握手和四次挥手, TCP的包头、

了解了UDP协议

了解了HTTP协议是无状态的协议,HTTP有请求和响应不同的头部,请求的方式分为get、post、put、delete、head、option等,剩下的那些我也不知道,响应的状态码分为1xx,2xx,3xx,4xx,5xx, 1xx表示临时的响应, 2xx表示成功,3xx表示重定向、4xx表示客户端异常、5xx表示服务器异常。

操作系统

了解了进程和线程的区别

并发和并行、同步和异步

进程的创建fork(), 僵尸进程(子进程退出,但是父进程没有处理子进程的退出)和孤儿进程(父进程退出了,子进程还没有退出,会被init进程收养)

文件描述符fd

IO多路复用 select、poll、epoll

Reactor模式、Proactor模式

用户态(用户空间)和内核态(内核空间)(32位操作系统一个进程分配4G虚拟内存,1G内核,3G用户) 数据段data,未初始化数据段bss,代码段txt等

数据库

Mysql

Mysql的基础还不熟悉,更不要说还有Mysql的底层知识不同的引擎还有B+树什么的,都没看。

Mysql教程

Mysql的常用命令

  • 创建数据库、数据表 create database [name]; create table [table_name] (字段名 类型 键类型);
  • 插入数据 insert into [table_name] (字段名) values(值);
  • 更新数据
  • 删除数据
  • 修改表(增加新的字段)
  • 分组查询 select * from [table_name] group by [字段] having [条件,聚合函数,比如count(*) > 2]
  • 联合查询 left join、 inner join、right join
  • 创建索引在某一个字段上 create index index_name on table_name (column_name)

Redis

Redis我就下好了,但是还没有怎么使用过。知道了常用的数据类型,额,好像又忘了,现在完全想不起来了,好像有str、zset啥的。这一块得再看看。Redis本来是单线程的Reactor模式,后来6.0之后可以使用多线程了,这个地方还不是很了解。

Nginx

Nginx好像是多进程的Web服务器,以前用过,但是主要就是用来放SpringBoot的项目,没怎么深入了解过底层,挺火的,这个可以在其他了解过后再了解。

Spring和SpringBoot

Spring和SpringBoot的八股文我得看看了,谁让我简历上还写了这个...