突然被腾讯爸爸捞起来打电话(48分钟左右)
1.自我介绍
面试官:我们这写c++哦 。我:没事我可以转
2.c/c++区别
3.c++的stl
4.c++多态
5.MySQL索引类型 b+,hash 怎么选择这些索引,怎么建立
6.唯一索引非唯一索引的区别,实现原理
7.MySQL灾备怎么做(主从复制)
8.还了解其他灾备吗 异步?同步?半同步?(????)
9.访问网页请求全过程
10.如果项目中很多请求打到数据库 你怎么优化(缓存,http版本)
11.redis你项目用来干嘛 存了什么
12.redis实现原理
13.redis跳表,为什么不用红黑树啊
14.redis持久化
15.hashmap实现
16.给你一个ip 和海量网段黑名单,怎么判断ip是否在黑名单中呢,效率要高哦(???)
17.随机海量数据求中位数(我讲了二进制分文件筛)那如果这些数都是很接近的你这个算法不太行啊 咋优化(???)
18.有什么问的 什么部门 -微信部门的 有什么建议 -算法和数据结构加强下(估计场景题没答好)
百度面经
一面
看了一眼我的项目,问是不是github上面的,我说是。。
面试官:你还挺老实,直接承认了
然后就没有问过我的项目了。。
1.spring BeanFactory和FactoryBean
2.spring bean生命周期
3.ConcurrentHashMap size()过程(我说我没看过这部分源码,面试官说可以自己发挥)
4.Synchronized ReentrantLock锁
5.写代码,多线程,三个方法A,B,C,循环打印十次A、B、C。没写出来,后面换了一道先执行完A、B再执行C
6.二叉树每个节点添加一个next指针,指向同一层的下一个节点(层次遍历,但是面试官说他觉得深度遍历更简单)
7.一个有障碍物的迷宫,求小球是否可以从左上角滚到右下角(有墙,可以向四个方向滚动,但会一直滚动到撞墙为止)
8.数据库隔离级别,innodb默认隔离级别,什么是幻读,innodb能不能解决幻读,怎么解决
二面(是个小姐姐)
1.同步和阻塞的区别
2.redis缓存穿透,缓存击穿,怎么解决
3.tcp协议的状态
直接问tcp协议的状态,问的比较少,TCP协议共有11种状态
4.线程池核心参数
5.线程池shutdown和shutdownnow的区别,实现原理
6.写代码,正则表达式匹配(剑指offer原题)
三面(全程被吊打)
从简历开始,说我的项目太简单没必要写,不如写自己研究方向
具体的问题记不太清了,还是偏技术的,我说的最多的就是不好意思/不清楚/不知道/不了解
(当时只想快点结束让我走吧)
两道代码题:
1.二叉树层次遍历
2.n个骰子,抛出点数和为m的概率(写了一个暴力的,他说让我回去看看动态规划。。)
结束的时候我问面试官这个是技术面吗,面试官说综合面,我问为什么不问我hr的问题,,,
面试官:我不看重这个,那我们就随便聊聊hr的问题吧。。
然后就随便聊了一下人生就结束了。。
vivo
一面(30分钟):
1、如何存储微博、微信等社交网络中的好友关系
使用图存取
2、一亿个数中取中位数
使用分桶算法,统计出中位数在哪个桶中。
3、项目
二面(hr面,10分钟):
1、自我介绍一下
2、你觉得你项目中最有成就感的地方
3、用两个标签描述一下自己
字节跳动游戏提前批
一面:
1、手撕代码
1)线程安全的单例模式
2)两数之和(leetcode第一题)
2、怎么处理网络堵塞
3、三次握手和四次挥手,为什么要三次握手和四次挥手
4、数据库的索引
5、你了解哪些索引结构
6、B树与B+树的区别
7、map的底层结构实现
8、unordered_map的底层结构实现,怎么扩充数据;
9、你了解哪些设计模式
二面:
1、手撕代码
1)对称二叉树
2)写一个堆,包括插入,删除,返回长度,返回堆顶元素,上下维护
2、简述C++有哪些容器
3、项目中的算法优化做过哪些
4、TCP和UDP的区别
5、如何实现两个界面之间的相互通信
6、主界面打开子界面,子界面如何返回打开主界面
7、你了解哪些设计模式
8、介绍一下观察者模式
9、你有没有投网易或者腾讯,他们游戏做的那么好,诚实一点,投了就是投了,没投就是没投
三面:
1、手撕代码
1)用两个栈实现一个队列
2)判断一个点是否在扇形中
3)实现一个产品:客户端有UI界面,是一个正在编辑的文档,可多用户同时编辑同一个文档
某一个人编辑得内容会在短暂时间更新得到所有人的电脑屏幕上;
会自动保存;
(这一题和面试官撕逼撕的比较久)
2、俄罗斯方块的实现
3、堆区和栈区的区别
4、为什么选择杭州
5、你对游戏程序研发这个行业的看法
6、复制粘贴怎么实现
oppo
一面:
1、算法比赛中印象最深的一题
2、讲一下你参与最多的一个项目
二面:
1、单向链表和双向链表的区别
2、你觉得你保研的成功方法是什么
3、你大学有没有参见过社团之类的,给你带来的帮助是什么
4、C与C++的区别是什么
5、C为什么偏底层一点
6、根据调度方式分类,有哪些操作系统
7、总结一下递归
8、递归无限执行时,堆和栈是怎么溢出的
9、堆和栈分别存储了哪些东西
10、跨平台是怎么实现的,为什么能跨平台
11、gcc和vs的区别是什么
12、程序运行时,编译器在干什么
注:这个面试官反复问你是否确认你的答案
三面:
1、自我介绍
2、家庭背景
3、给自己打三个标签
4、最痛苦的是什么时候
5、如果你是以个leader。你的一个队友以前非常勤奋,忽然开始懈怠,这是项目又很紧急,你会怎么做
6、你为什么选择oppo
7、你是根据什么找工作的
8、你的期望薪水是多少,为什么是这么多
9、你能说出你身边几个优秀的人吗,他们优秀在哪
10、你对工作地点怎么看
11、你的六级成绩是多少
12、oppo是你投的第一家吗
网易雷火
一面:
1、手撕代码:三数之和
2、虚函数表存在哪,虚函数存在哪,单继承,多继承情况的虚函数表使用方法
3、socket编程的过程,以及select,poll,epoll的区别
4、进程调度算法
5、进程通信方法,利用共享内存通信的具体原理
6、map和 unordered_map的区别,底层实现原理;
二面:
1、Void f( int index)
{
static int i = 0;
cout << ++I <<endl;
}
Int main()
{
f();
f();
f();
return 0;
}
输出为:
2、192.168.1.1/255.255.254.0中的广播地址为多少
3、TCP协议三次握手和四次挥手
4、TCP协议处理网络堵塞的方法
5、项目
三面:
1、进程间的通信方法;
2、针对共享内存,当一个进程把一个类写在共享内存中,另一个进程能正确读读出和使用吗,如果类中有虚函数呢,如果类中有int成员,两个进程默认的int类型不一样,那么另一个进程能正确读出吗
3、内存对齐原理
4、map和 unordered_map的区别,底层实现原理
5、哈希表的实现原理及如何以O(1)的复杂度删除封闭式哈希表中的数据
6、数据库中索引的原理及数据结构
7、B+树和红黑树的区别,既然B+树的查询效率比红黑树高,为什么用红黑树的地方不用b+树
8、一个类添加普通成员函数和虚函数会影响类的大小吗;
9、派生类继承的两个直接基类中都包含虚函数f(),并且派生类重写了f(),这种情况下虚函数表是什么样,调用会出什么问题
10、在类中的某个成员函数如下:void f()
{
delete this;
f2();
}
能这样用吗,会报错吗,编译时报错还是执行时报错。
四面(hr面):
11、你了解内核吗,描述一下系统调用的过程
12、介绍一下函数阻塞的过程及原理
13、select、poll、epoll的区别,epoll的底层实现原理
14、TCP网络阻塞,为什么要那么做。
15、内存泄漏原理及怎么处理。
1、就一个项目介绍一下这个项目带给你的成长
2、你有什么好的学习习惯
3、职业规划
4、投了其他公司没有
大疆:
一面:
1、j项目
2、介绍一下有哪些构造函数
3、介绍内存四区
4、const变量存在哪
5、TCP三次握手
二面:
1、两分钟讲一个你觉得做得最好的项目
2、10万个数寻找前K大个数
3、怎样在函数运行之前打印字符串
4、嵌入式开发和PC 端开发的区别
5、你觉得嵌入式开发应该注意什么
拼多多:
一面:
1、50分钟项目
2、算法题
环路上有N个加油站,每个加油站有汽油gas[i],从每个加油站到下一个消耗cost[i],求到从哪儿个加油站出发。
二面:
1、进程通信的方法
2、管道和消息队列的区别
3、静态全局变量和动态全局变量的区别
4、多进程程序和多线程程序的区别
5、泛型编程时为什么把定义都写在头文件中
6、TCP的拥塞避免
7、select 和epoll的区别
8、客户端发送了两个请求,有一个是失效的,服务端应该怎么去识别
9、现有一台主机有200G数据,怎么最快的将它复制到50台其他主机上,每台主机的接受带宽都是100M
10、将C文件编译成可执行文件的过程。
11、在网页中点击某一个链接 ,描述一下之后的过程
12、循环展开为什么能加快程序运行
13、缺页中断以及段页式存储为什么要这样做
14、TCP传输过程中有几次数据拷贝
15、银行家算法
16、聚簇索引和组合索引的区别
17、DNS域名解析
网易互娱
一面:
1、撕代码:打印全排列
2、介绍项目
3、内存局部性概念
4、一致性哈希
5、页面置换算法
其他的想起来在补充吧。。。
二面:
撕题:内存拷贝
1、介绍一下虚拟内存
2、指针相减
3、怎么看游戏研发
4、能不能来广州
5、对网易游戏的认识;
字节跳动正式批(效率工程部门)
一面:
1、写一条查询语句(数据库)
2、项目(细节讨论了很久)
3、撕代码:最长不重复子串
二面:
1、介绍IP协议
2、那个指令用了ICMP协议
3、怎么样创建一个只能在栈上创建的类
4、怎样创建一个只能在堆上创建的类
5、介绍依稀allocator
6、介绍TCP协议中的11个状态
7、撕代码:跳格子,数组中每个元素表示的是能在当前位置跳的最远的距离,问从第一个位置出发,能否跳完数组
8、如果只知道一台主机的mac地址,怎么获得它的ip地址
9、怎么由一台主机的ip地址知道整个局域网的网络地址和主机地址,反过来呢?
10、介绍一下vector的底层原理
三面:
1、撕代码:第k大的数
2、进程和线程的区别
3、进程的通信方式
4、什么叫有血缘关系的进程
5、linux系统下按键ctrl+C后会发生什么
6、为什么选择杭州
7、对游戏研发有什么看法。
百度
一面:
1、进程和线程的区别
2、撕代码:两数之和
3、vector的内存管理
4、撕代码:单利模式
5、撕代码:字符串中去空格
6、指针和引用的区别
二面:
1、项目
2、撕代码:去除源码中的注释
3、数学题:平面上有2n个点,任意三个点不共线,问是否存在一条直线,可以平分这2n个点,并给出证明
没了,真的没了
三面:
1、介绍项目
2、Qt中信号与槽的底层原理
3、继续上题,假设你现在有一个信号,有多个窗口可能可以响应这个信号,这多个窗口应该用什么结构去存储,又怎么判断这些窗口是否应该对信号做出反应。
4、map和unordered_map的区别
5、介绍一下队列
6、介绍一下哈希表
7、撕代码:二分法。
8、你了解百度吗
8、你对北京怎么看
华为、浦发的面试内容不太记得了,但应该与上述问题类似。
总结一下,个人认为,虽然今年是互联网小年,但是找到工作其实也没那么难,最重要的是一定要理论基础扎实,题要能撕出来(虽然楼主也很菜。。。。);项目其实没那么重要,楼主的项目其实跟后台都没有什么关系,大部分面试问项目也都是问一下,走个流程,只有少数几个会深挖,但你可以对自己的项目做一下拓展,比如往多进程,多线程方面。另外,有一些竞赛经历也是有帮助的。
转载:https://blog.csdn.net/wwxy1995/article/details/101716463