背景

每次要面试之前都需要临时抱佛脚,可是该抱哪些佛脚呢? 为了避免我每次都忘记,这就专门写一篇博客简单总结一下吧.

算法和数据结构

算法

算法这一块都是一些基本的算法,需要能够快速的写出算法代码,对算法的优缺点心知肚明

  • 各种排序: 快速,归并,堆,插入,冒泡,选择排序等.
  • 字符串相关: KMP, strlen, memcpy, strcmp等
  • 图相关: dfs, bfs, 拓扑排序,关节点,单源最短路径,最短生成路径

数据结构

基本需要了解的数据结构,熟悉基本实现和相关数据结构时间复杂度

  • 二叉树: 前序/中序/后序非递归遍历
  • 线段树/字典树: 基本实现
  • 最小/最大堆: 实现
  • 链表: 链表反转,链表找环
  • 哈希表: 开链法实现
  • Map: 红黑树基本概念

操作系统

这里主要以Linux为研究对象

  • 进程和线程,进程fork, vfork, clone, execve, exit, wait
  • Linux进程调度策略, FIFO, RR, OTHER
  • Linux内存管理策略, task_struct -> mm_struct -> vm_area_struct
  • Linux进程IPC实现原理, Pipe, Signal, Semphore, Shared Memory, Socket, Message Queue
  • 互斥: Mutex, Semphore, Spin_lock
  • 死锁: 死锁条件,死锁检测,死锁避免
  • 生产者消费者问题,哲学家问题

计算机网络

这里主要以TCP/IP为研究对象

  • TCP/IP状态转移图,三次握手,四次握手
  • 拥塞控制,慢启动,滑动窗口,拥塞窗口, 傻窗口, 快速重传,快速恢复,超时重传
  • TCP与UDP区别
  • ARP/RARP, DNS, ICMP, IGMP, HTTP等协议
  • tcpdump, ping, traceroute命令

C++

C++内容很多,就简单说说常见的

  • 虚函数实现原理
  • C++对象内存布局,虚继承与多继承
  • C++各个容器的实现原理
  • C++内存分配原理
  • C++11新标准
  • const, static, 四种cast, inline等关键字
  • 指针和数组,指针和引用区别
- EOF -

声明:本文采用BY-NC-SA协议进行授权.转载请注明: 码农面试基础准备总结



comments powered by Disqus

Hitwebcounter.com Free