「生活可以更简单, 欢迎来到我的开源世界」
  1. baidu
  2. other
  3. 字节
    1. 2
2020-11-10

临时文件

baidu

一面:60min
1.const用法,指针常量和常量指针,const int* f();
2.inline能不能是虚函数
3.inline声明的函数体里有递归怎么办?
4.内核的作用,内核分配内存的方式
5.何时需要显式使用this指针
6.this指针可以调用delete吗
7.什么时候用到后序遍历
8.12345,k=2–>45123,原地实现。

二面:60min
1.手写一个linux下C/S通信,要使用select()。
2.STL内存分配如何实现的
3.手写LRUcache
4.动态链接和静态链接

三面:60min
半技术半HR
问了两个项目
问了一些生活场景题
一道场景题,海量文件,每行是一个小于20字节的不定长汉字字符串。还有一个10000行的黑名单,每行是一个小于5字节的不定长汉字字符串。判断海量数据里是否有黑名单里的字(连续的)
比如对于 “地方就是到了开发商贷款反对法”这条数据,黑名单里有一行是 “到了开发” ,那么证明这个字符串是在黑名单里。

other

什么时候用到后序遍历

this指针可以调用delete吗

inline声明的函数体里有递归怎么办?

inline能不能是虚函数

关于TCP三次握手?二次握手为什么不行?

字节

一面 1:05

1.计算机网络的七个层
2.udp 和 tcp 的区别 基于udp 和 tcp 分别有什么协议
3.dns
4.谈一谈对CDN的理解
5.手写css 水平垂直居中的几种方式,那种最好
6.浏览器从打开以后发生了什么
7.操作系统的磁盘调度算法熟不熟悉 一共有多少种
8.ndoe.js 的事件循环
8.宏仁务 微任务 process.next.Tick() 和 Vue next.Tick()
9 手写一个 event类 包括 on() off() once() emit() 方法
10.有什么想问的嘛

二面 58:00

面试官看我简历 说 你是软件工程专业吧
编译原理学过吧 说一下编译原理的过程吧
2.dns 的解析过程
3.koa 框架的 洋葱模型
\4. 用js手撕一个二叉树的序列化和反序列化
5.写一个merage函数 将两个有序数组合成一个有序数组 不能用 concat sort
6.对称加密 非对称加密的区别
7.堆和栈的区别
8.http 和 https的区别
9.callback promise 和 async/await 的区别
10.设计者模式
11.有什么想问的么
聊了一会 问我有没有来深圳玩过 我说面试过了不久能去了嘛
快结束了的时候 二面面试官说我基础掌握的还不错 (楼主是java->php->node->前端)
就是框架掌握的还不行 (一面的时候小哥问我框架 我说我对koa 和 egg 熟悉 在学vue react)
然后给我说让我这两个月把 react redux antd学好 我本来以为这是不要我了 让我校招再来没想到二十分钟就收到三面通知了

三面 1:08
三面面试官上来就说 你是node java 学的好为什么不去投后端而是前端
我从 “大前端 兴趣”来解释了一下

  1. node 和 java 的区别(业务逻辑、分别擅长什么)
  2. node和java 在处理高迸发的方式
  3. 项目中用到了什么 (egg mongodb)
    用没用过 mysql mysql和mongodb 的区别
    在项目中为什么要用 mongodb 不用mysql
  4. 给你一个 div 一个 a标签 怎么在将鼠标放在a标签上时 div显示 移走div 消失
  5. 如果有 1000个 a 标签呢 怎么优化
  6. 怎么才能做出来 类似百度的 边搜索会弹出下拉框 里面有相似的搜索结果
  7. 搜索框一直输入 怎么办 手撕了一个防抖
  8. 二叉树熟不熟悉 二叉树的翻转 和 层次遍历
  9. 又回到了项目 讲了讲 rbac
  10. 问了我简历上的 SSH的项目..
  11. 有什么想问的嘛? 深圳热吗?

hr面 15min

2

笔试:
1.扑克牌游戏,规则为开火车,牌多的获胜
2.计算任意一天到2012年3月12日的天数差
3.多门课程分班。条件为:每个班人数必须相同;一个班只能上一门课,一门课程可以多个班级;班级数量尽可能少
4.给定多条道路,求最少道路连通。粗一看是个生成树,最小代价,但是有个限制条件,有AB两种节点,同种节点不能直通
5.网络某节点到其他所有节点的最大延时。似乎是先floyd求到其他所有节点的最短距离,再找其中的最大值。

我前3个100%通过,4题不会,第5题Floyd没写全没做完。第二天就hr电话通知约定视频面试,电话似乎是北京的总部打来的。面试定在下一天7.4日

一面:
内存对齐的作用
多态,静态多态,动态多态
内联函数inline作用
析构函数virtual作用
进程和线程区别,资源分配,调度单位
进程、线程间通信方法
Top K问题:先是多个文件无重复记录Top K
然后问有重复记录怎么做:多个文件记录IP访问频率,每个文件中有重复记录,加起来可能大于部分TOP K,怎么找TOP K。
似乎是用hash重新对所有记录映射到文件,同一key的记录必然映射到同一文件,没答上来
代码题146.LRU Cache

一面14.30开始,15:20结束,当天17点左右hr打电话约定明天7.5日的视频面试

二面:
map和unorder_map区别
红黑树了解多少,avl区别
Session和Cookie
数据库了解么——不懂
Time_Wait 握手挥手
什么时候重哈希
C++11下新特性,说了一通包括右值引用move,forward
lambda函数,函数符
旋转数组找中位数
代码题:两个排序数组找第k个,原题为旋转数组找最小值

二面这里其实关于web这块我答的很差,明显不是太懂cookie;数据库用的少,只会写sql语句,隔离,事务,触发器都讲不太清楚,所以直接说不了解了。其他c++都答的还行
二面由于7.5日星期五,当天hr打电话约定下周2到公司现场面试。

三面:
自我介绍,随便介绍了做了什么项目
问我哪个实验室,我说网络空间安全实验室,
问我知道哪些攻击,sql攻击,xss攻击,我说我大概了解这些,但是讲的不太清楚。
问我sql攻击原理,我举例单引号
然后问我如何防范,我说可以过滤关键字,或者nosql数据库
再问我nosql有哪些,我忘记了mongoDB没答上来。

到这里我就感觉有点被牵着鼻子走了,我一直在把话题往项目和c++上引导,但是面试官仍然问我web的内容:
session和cookie区别,cookie的加密与安全性保证,cookie和session生命周期,什么时候失效
https的建立过程,优缺点,什么时候使用对称加密什么时候使用非对称加密
http2.0 http1.1 特点区别

我并不是web方向,这一块估计也就了解的程度

接着又问数据库了解程度,我还是说不懂
1.数据库隔离等级——不懂
2. 数据库触发器——了解一点,回答了一下,勉强答上
3.联合索引——ok
4.B树B+树区别——勉强答上

然后终于问了俩偏操作系统的问题:
1.服务器怎么处理多个session,什么线程模型
2.fork复制哪些东西

代码题trapping-rain-water
我开始用双指针法给面试官解释了一通,面试官似乎并没了解这种方法,我又辗转画图+描述+代码给他讲了10多分钟,终于说ok了;然后我顺便介绍了一下可以用递减栈完成。

情景题:A向B传输数据,设计一个协议,保证到达,怎么分块确认。
我介绍用TCP的确认机制,
面试官说这样会多次重传收到的块。我继续介绍说可以选择性重传,保存一个hash表。
面试官说hash表过大怎么办,我说可以做区间合并,介绍了leetcode那个Merge Interval。
面试官又说收到的块必须不重发,我说ACK中可以加入额外分块确认字段。

作者:心无波涛
链接:https://www.nowcoder.com/discuss/584515
来源:牛客网

腾讯tme社招面经,希望能帮到大家

一面

1,项目介绍
2,两道算法题
A: 分割字符串,如:abc=1&d=2, 输出 abc=>1, d=>2的KV结构,要求充分考虑边界问题
B: 两个无序链表A和B,按照奇数在前,偶数在后,局部有序(奇数有序,偶数有序),并且对重复数字去重
3,tcp粘包及怎么处理
4,redis缓存设计
5,设计系统,Q币和礼物系统,如果出现支付延迟怎么办,考验分布式强一致性
6,消息队列组件

二面
1,项目介绍
2,两个算法题
A: 去除字符串空格
B: 就字符串子集,如123,输出,1,2,3,12,13,23,123 相关知识点: [数组](javascript: void(0))[回溯](javascript: void(0))[位运算](javascript: void(0)) 相关知识点: [数组](javascript: void(0))[回溯](javascript: void(0))[位运算](javascript: void(0)) 相关知识点: [数组](javascript: void(0))[回溯](javascript: void(0))[位运算](javascript: void(0)) 相关知识点: [数组](javascript: void(0))[回溯](javascript: void(0))[位运算](javascript: void(0))
3,tcp三次握手,backlog是干什么用的
4,innodb事务底层实现技术

三面
1,项目介绍
2,乐观锁和悲观锁区别
3,tcp四次挥手
4,主从同步重试机制,怎样保证重试数据完整

四面
1,项目介绍
2,tcp半链接队列攻击
3,mysql两种存储引擎及区别,底层实现
4,进程,线程,协程区别
5,分布式系统理解,分布式时序怎么做,最终一致性理解
6,快速排序思想,哨兵选择可优化点

五面
1,项目介绍,项目改进
2,mysql索引,为啥要用B+树,红黑树为什么不行?
3,redis使用场景,用过哪些功能
4,服务可用性改进
5,换工作原因

<⇧>