一位大佬的面经
Posted domefy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一位大佬的面经相关的知识,希望对你有一定的参考价值。
2020届秋招算是告一段落了,从3月份找实习开始到现在也有大半年了,个人感觉秋招就是一个不断积累经验、提升自己的过程,简单总结下就是:基础、算法、项目、实习和表达能力。
字节跳动(一、二、三面,offer)
map的key如果是结构体需要注意什么问题
构造函数和析构函数什么时候调用
为什么要进行内存对齐,具体讲解,内存对齐又会带来什么问题
详细讲解堆和栈的区别,new和malloc的区别,malloc底层原理
详细讲解虚函数,虚函数表放在哪里,虚表指针什么时候初始化
详细讲解static成员变量和static成员函数
进程间通信的方式,共享内存的原理
自旋锁的原理,什么时候用自旋锁,什么时候用互斥锁
详细讲解单例模式的实现
详细讲解select和epoll的底层实现,LT和ET模式的底层区别,ET模式下的读写注意事项
输入网址后的执行过程,详细讲解每一层
详细讲解HTTPS的原理,客户端为什么信任第三方证书
怎么实现DNS劫持
TCP和UDP的区别,TCP如何保证可靠性,UDP又有什么优势
如何控制客户端的并发数
详细讲解项目中用到的线程池,线程数应该设置为多大
MongoDB副本集实现高可用的原理,raft选举过程,投票规则,日志复制的过程,rocksdb引擎的优点,LSM树讲解
------------------------
手撕代码:
* XML格式解析
* 有序数组找到第一个小于0的数和第一个大于0的数
* fork和循环结合后打印多少个字符
* 实现一个string类
* 矩阵左上角到右下角的最短路径和
* 实现一个智能指针
* 合并两个排序数组并去重
* 最长无重复子串
* 两个排序数组找中位数
* string转float
美团点评(一、二面,挂):
讲项目和实习
TCP三次握手、四次挥手,如何实现可靠性,拥塞控制,数据包发生乱序如何恢复
DNS解析的过程,DNS是基于TCP还是UDP
进程和线程的区别,进程调度算法,如何创建进程和线程,进程和线程的底层实现
MongoDB如何实现事务,事务的隔离级别
智能指针的思想,循环引用,unique_ptr的实现原理
介绍一下野指针
什么情况下会发生内存泄漏,怎么解决
HTTP长连接和短连接
用数组实现一个栈,并在O(1)时间复杂度内获取最小值,如果是队列该怎么做
实习遇到的难点
项目中的问题排查
------------------------
手撕代码:
* 最长连续子串
* 基于快排的思想实现TOP K
百度(一、二、三面,挂)
虚表存放在哪里,虚表指针什么时候初始化
TIME_WAIT状态持续时间为什么是2MSL,不是1MSL、3MSL
MongoDB高可用架构的原理
服务器运行很慢怎么排查
详细讲解简历里的一个专利的实现原理和创新点
36辆车,6个赛道,最少次数得到速度最快的3辆车
详细讲解科研课题方面的研究成果,难点和创新点
怎么知道服务端出现了死锁?死锁和死循环的区别,怎么区分
------------------------
手撕代码:
* 求A^B的后三位数
* 有一个日志系统,统计在某一段时间内某个IP出现的次数
腾讯(一、二、三面,offer):
哪些地方用到了锁,为什么用锁,与锁有关的是哪些资源
三次握手和四次挥手的过程,交换了哪些信息,序列号为什么是随机初始化的
拥塞控制的流程,窗口大小为什么先以指数增加再以线性增加
进程和线程有什么区别,如何产生一个进程,子进程和父进程的内存空间是独立的吗,fork的原理,fork之后的子进程为什么会调用close
redis可以用来做什么,掉电数据如何恢复
tcp三次握手和四次挥手,time_wait状态是怎么回事,一定是出现在客户端吗,为什么是2msl,大量的这种状态会出现什么问题
数据库死锁的场景,怎么解决,操作系统的死锁,怎么解决
如何实现一个CDN系统
数据库的ACID四种属性的底层实现原理
如何实现一个缓存系统
海量词汇统计出现频率
计算各种情况下的sizeof
虚函数以及虚表的作用,具体分析
HTTP如何实现状态化,cookie被禁用了怎么办
TCP流量控制中发送端和接收端滑动窗口大小是怎么确定的
------------------------
手撕代码:
* 实现一个string类,尽可能地考虑到所有情况
电信云计算(一、二面,挂)
自我介绍
讲项目和实习
redis有哪些数据类型,分别有什么应用场景,怎么读取redis里的数据并推送到前端的
项目中有哪些难点,有没有遇到什么问题,讲讲你是怎么排查的
HTTP请求的数据包格式
C++内存泄漏和野指针怎么解决
Linux的基本命令,netstat、top、grep、sed、awk应用场景
讲解MongoDB基本概念和高可用架构原理,适合存储哪些类型的数据
对云计算的认识
为什么想来电信云
期望薪资是怎么考虑的,工作地点呢
小红书(一、二面,挂):
详细讲解项目并画出项目架构图
B+树的插入和删除操作
Linux如何为普通用户提供root权限
MongoDB的增删改查操作
epoll原理、TCP三次握手原理、TCP可靠性如何保证
输入URL后的执行过程,画出必要的流程图
口述两个并发的sql语句,并分析隔离级别和加锁机制
------------------------
手撕代码:
* 链表反转
滴滴出行(一面,挂):
实习遇到的难点
TCP两次握手有什么问题
100亿个数找TOP 10
缓存击穿和缓存雪崩怎么处理
旷视科技(一、二面,挂):
拷贝和赋值的区别,深拷贝与浅拷贝的区别
QT信号与槽实现机制
实现一个线程安全的栈,并且实现其单例模式,
MongoDB存储int和string有什么区别
------------------------
手撕代码:
* IP地址转无符号32位整数
* 链表的建立、插入和删除
* 反转链表
* 大数相加
58集团(一、二面,offer)
非阻塞connect怎么实现
accept与三次握手的联系
负载均衡怎么实现的
任务队列怎么实现的
定时器有什么用,怎么实现定时器
怎么处理高并发短连接造成的性能瓶颈
KNN是怎么实现的,特征有多少维,数据量有多大,时间复杂度是多少
wiredtiger引擎事务的实现原理
redis的有序集合是怎么实现的,跳表的增删改查复杂度是多少
------------------------
手撕代码:
* 字符串转int
* 二叉树转换为单链表
招银(一、二面,挂)
项目中问题的排查
动态语言和静态语言的区别
------------------------
手撕代码:
* 单例模式的实现
* memcpy的实现
追一科技(一、二面,挂)
Linux系统的启动过程
IP地址、子网掩码、默认网关、DNS的作用
如果你是老板,你会招什么样的员工
团队成员意见有分歧怎么处理
导师交给你一个任务,怎么去完成
画出项目架构图
MongoDB高可用架构的原理
添加一列索引,什么情况下索引并没有生效,如何改进
学而思(一面,挂)
面试体验非常非常差,和面试官直接怼起来了,不想多说了
猿辅导(一面,挂)
讲项目和实习
边缘触发和水平触发的区别,编码时有什么需要注意的
MongoDB副本集选主的过程是怎么样的
手撕代码:
* 两个数组,数组的元素都是区间,将两个数组合并
作业帮(一、二面,挂)
讲项目和实习
常规的面试问题(不再重复)
------------------------
手撕代码:
* 合并两个排序链表
* 分解因数(递归)
跟谁学(一、二面,offer)
虚析构函数的作用,内存泄漏问题
TCP每次走的链路是一样的吗
UDP如何实现可靠性,视频使用UDP传输有什么好处
动态链接库和静态链接库的区别,在链接的时候有什么不同
多线程的使用及其需要注意的问题
多线程中的“锁”用到哪些内核资源
面向对象的特性有哪些?说一下多态
说一下socket编程调用的函数
成绩排名、籍贯、高考分数、六级分数
说说自己的职业规划、优缺点、兴趣爱好、期望薪资
------------------------
手撕代码:
* 链表排序
盛趣游戏(一面,offer)
常规的面试问题(不再重复)
------------------------
手撕代码:
* 二分查找
深信服(一、二面,offer)
常规的面试问题(不再重复),项目和实习问得比较深
大华(一、二面,offer)
常规的面试问题(不再重复)
去哪儿网(一面,挂)
常规的面试问题(不再重复)
------------------------
手撕代码:
* 使用堆实现TOP K问题
* 二叉树的层次遍历
Shopee(一、二面,挂)
讲项目和实习
常规的面试问题(不再重复)
了解哪些缓存,redis用过吗,跳表原理讲一下,LRU又是怎么实现的
客户端的登录验证过程,如何保存密码
cookie和session的区别
HTTPS中为什么需要第三方证书,客户端为什么信任第三方证书
------------------------
手撕代码:
* 实现一个堆,包括插入和删除元素函数的实现
* 字符串按空格反转(I LOVE SHOPEE => I EVOL EEPOHS)
* 链表按空格反转(I->‘ ‘->L->O->V->E->‘ ‘->S->H->O->P->E->E => I->‘ ‘E->V->O->L->‘ ‘E->E->P->O->H->S)
BIGO(一、二面,挂)
讲项目和实习
常规的面试问题(不再重复)
进程切换时操作系统需要做哪些事
TCP流量控制发送端和接收端的窗口大小是怎么确定的
手撕代码:
* 二叉搜索树转双向链表
金山云(一、二、三面,offer)
常规的面试问题(不再重复)
线程间通信的方式有哪些
分布式数据库的数据一致性怎么保证
C10K问题和C100K问题
创建死循环有哪些方式
--------------------------------秋招面经(HR面)--------------------------------
怎么证明你的自学能力
讲讲最近看的一本书,有什么收获
你认为什么是好的代码
你有什么优缺点
你遇到过的最大的问题,怎么解决的
你的职业规划是什么
能实习多久
对公司的了解
对自己最不满意的地方是什么
自己最骄傲的事情是什么
你觉得最成功的事是什么
你觉得最遗憾/失败的事是什么
原文链接:https://www.nowcoder.com/discuss/330950
以上是关于一位大佬的面经的主要内容,如果未能解决你的问题,请参考以下文章
迟到的Java岗面经面7家,意外收获5家意向offer,越努力越幸运!