csig难民终于上岸,感谢内推人鸽哥!!!
下面是面经,大家可以参考参考下。
第一次(后台)
- TCP三次握手交换的信息
- TCP四次挥手,服务器的状态变化,客户端的状态变化
- 拥塞控制,流量控制
- B-Tree和B+Tree区别
- 进程和线程的区别
- 算法题:异或特性→其他数字都出现2次,2个数字出现1次,找出这2个数字
- TCP头部信息,最大多少字节
- MySQL事务隔离级别
第二次(后台)
- 自我介绍
- 学习了什么算法,过程是怎么样的
- C++与Java的区别
- 什么是关系型数据库
- 介绍一下树
- 什么时候使用红黑树
- JDK中的HashMap结构
- 讲一下哈希表
- 讲一下常用的Linux命令
- TCP的三次握手,四次挥手
- 网络层还知道什么协议
- 操作系统的内存是怎么样的
- 讲一个最熟悉的算法(快速排序)
- 归并排序
- 稳定的排序算法有哪些
第三次(后台)
手撕算法题
1. 判断数上是否存在一条从根节点到叶子节点的路径,使得路径上所有节点的和为给定
2. 始定一个数组,找出数组中所有3个数和为0的序列,序列不可重复。
例如:输入[1,2-3.-2,0],输出[[1,2·3].[2-2.0]]
3.字符串S由小写字母组成,我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段,返回一个表示每个字符中片段输入:S=‘ababcbacadefegdehijhkij”
输出:["ababcbaca','defegde',“hijhk]
例如:输入[1,2-3.-2,0],输出[[1,2·3].[2-2.0]]
输出:["ababcbaca','defegde',“hijhk]
4. leetcode 好数组
- 笔试算法题目解释
- 自我介绍
- 项目→项目中遇到的问题,用户鉴权是怎么做的,登录注册逻辑,爬虫怎么爬
- Https原理
- 为什么要使用非对称加密
- 进程和线程的区别
- 线程调度算法
- 操作系统内存
- 内存调度算法
- TCP和UDP区别
- TCP三次握手
- 流量控制
- 怎么改变窗口值的大小
- OSGI模型和TCP/IP模型
- 传输层和网络层是干什么的
- 为什么要这样分层
- 多线程的安全→锁机制
第四次(后台)
手撕算法题
2. 实现一个基于Hash的全内存LRU cache,插入时,发现节点个数超过闹值,则按照全局最近最少使用淘汰节点。
采用链地址法解决Hash冲突:Hash桶个数固定为1千万,最多只能存储1亿个的节点,每个节点的key和value都为uint32t。
采用malloc和free分配和释放内存,不需要实现内存池。实现get和set
3. 逐行打印n*n回型矩阵(不可以在内存填好整个矩阵然后再打印)
第六次(后台)
第七次(测开)
采用链地址法解决Hash冲突:Hash桶个数固定为1千万,最多只能存储1亿个的节点,每个节点的key和value都为uint32t。
采用malloc和free分配和释放内存,不需要实现内存池。实现get和set
3. 逐行打印n*n回型矩阵(不可以在内存填好整个矩阵然后再打印)
- 项目
第五次(后台)
- 自我介绍
- 项目→介绍一下项目的爬虫
- 设计反爬的方法
- 线程调度的一些算法
- 线程状态的转换过程
- 僵尸进程的原理
- 如何在用户层次创建多个进程→操作系统的协程
- printf和cout的区别
- 自己常用STL里面哪些数据结构
- 讲一下动态数组,红黑树,哈希表的区别
- 什么情况会用到红黑树,哈希表
- 解决哈希冲突方法
- 如何解决哈希表分布不均匀的情况
- 想一个比较好的方法,怎么迁移一个哈希表里面的大量数据到扩容后的哈希表
- 这里涉及到时间效率,用户访问情况
- Redis源码处理的方法
- 为什么MySQL会采用B-Tree或者B+Tree
- MySQL是怎么区间查询
- B-Tree与B+Tree的区别
- 手写双向链表删除节点算法
第六次(后台)
- 自我介绍
- 自己的优势
- 声明一和访问个变量会发生什么
- 虚拟地址和物理地址怎么转换的
- 虚拟地址转换物理地址的过程发生的异常
第七次(测开)
- 自我介绍
- 项目相关
- 为什么要用SpringBoot
- 图论题目→ 求起点到终点的路径方案数
- 怎么测试你刚刚那个程序
- 你还什么要问我
第八次(测开)
- 说说你对测试开发这个岗位的理解
- 说说你在这个岗位的优势
- 具体讲一下你的项目
- Java是怎么管理多线程的
- Java是怎么创建线程
- 线程间的怎么通信的
- 进程间的通信
- 同步和异步的区别
- 哪门科目你学得比较好
- 你的成绩排名
- 数据结构里面的复杂度怎么计算的
- 有哪些复杂度→空间复杂度,时间复杂度
- Http协议本身
- Http协议有哪一些
- get和post区别
- 打开idea看项目,讲一下项目的代码和结构
- Java是怎么保证线程安全的
- 讲一下Java中的一些容器以及它们的适用情况
- 补充一下优势
第九次(测开)
- 自我介绍
- 项目
- 算法题→ set容器基本运用
- 智力题→20个糖果,2个糖果皮能换一个糖果,问最多能吃到几个糖果
- 你还有什么要问我的
第十次(HR)
https://www.nowcoder.com/discuss/409319
全部评论
(8) 回帖