阿里现场面试(一):
- B树、存储模型(B树、B+树与数据库引擎这块是热门问题)
- 字典树构造及其优化与应用
- 持久化数据结构,序列化与反序列化时机
- 大规模文本文件,全是单词,求前10词频的单词(Top k问题是热门问题)
- 堆排序与其在求10词频问题中的应用
- 字典树与其在统计词频上的应用
- 红黑树的特性与其在C++ STL中的应用
- 红黑树的调整
- 贪心算法与其弊端
- 能取得全局最优解的算法
- 动态规划的原理与本质(动态规划dynamic programming是笔试热门题型)
- 01背包问题的详细解释
- 数据库中join的类型与区别
- 数据库的ACID
- 实现bitmap数据结构,包括数据的存储与插入方式
- 实现unordered_map,键为string,value不限
- 实现unordered_map过程中的冲突解决办法
- 一串int型整数存放磁盘上的压缩存储方式,包括写入与读取及内存无法一次性读取时的解决办法
- 对Java的了解
- Bloom过滤器处理大规模问题时的持久化,包括内存大小受限、磁盘换入换出问题(Bloom过滤器是热门问题)
- 线程池的了解、优点、调度处理方式和保护任务队列的方式
- 对象复用的了解
- 零拷贝的了解
- Linux的I/O模型(I/O模型是热门问题)
- 异步I/O的详细解释
阿里现场面试(二):
- 线程池对线程的管理方式,包括初始化线程的方法、线程创建后的管理、指派任务的方式
- 同步I/O与异步I/O的区别,包括如何定义异步I/O、I/O实质上交给谁完成、如果实现异步
- Direct I/O 和其与异步I/O的区别
- Linux内核如何调用Direct I/O
- Bloom过滤器的优点与原理
- 字符串hash成状态位的具体实现方式
- hash函数如何保证冲突最小
- 文件读写使用的系统调用
- 文件读写中涉及的磁盘缓冲区与其手动flush问题
- 数据库join的具体含义
腾讯电话面试(一):
- C和C++的特点与区别
- C++的多态
- 虚函数的实现
- C++内存分配
- 几大存储区
- Python的特点
- Python有哪些实现(此处是指CPython、Jython等)
- CPython的解释执行过程
- Python里面垃圾回收是怎样的
- Python多线程介绍
- 多线程可以使用多核吗
- 协程的了解
- cgi的了解
- http协议get和post的区别
- 进程间通信方式
- 建立TCP服务器的各个系统调用
- 处理多个套接字的I/O复用介绍
- epoll为什么更快
- 虚拟内存的概念与介绍
- 单链表的倒置
- 快速排序的优化
- 字符串匹配算法
- TCP的三次握手与四次挥手的详细介绍
- TCP的超时等待的介绍
- 流量控制的介绍
- 数字证书的了解
- http和https的区别
- 对数据库包括其引擎的区别与了解
- 数据库索引的作用(数据库索引是热门问题)
今日头条
现场一面 & 现场二面:
- 算法题1:无序数组查找第Top k元素。手写代码实现
- 算法题2:并查集。手写代码实现
- Python中range与xrange的区别
- 算法题3:链表反转。手写代码实现
- git merge与rebase的区别
现场一面
- 算法题1:枚举给定数组中的所有非递减子序列。敲代码运行
- 算法题2:枚举给定数组的全排列。敲代码运行
- 介绍I/O复用技术,epoll优于select的原因
- 介绍线程池
- 图的邻接矩阵和邻接表的表示,邻接表的数据结构。敲代码不运行
现场二面
- 算法题1:给定二叉树,假设相连接的两结点间距离为1,求所有结点中距离其他所有结点距离和最小的结点。敲代码运行
- 介绍C ++内存管理(C ++的内存模型是热门问题)
- 对文件系统的了解
现场三面
- 算法题1:给定数组,快速求出所有数右边第一个比其大的数。回答思路
- 算法题2:给定k个数组,每个数组都是有序的,且每个数组最大值-最小值<1000,1
- 进程与线程区别
- STL内存分配
閱讀更多 優知學院 的文章