8.27 美团 二面
望京真的好大 头一次去都给我整懵了 有种刘姥姥进大观园的感觉。
二面
- 问项目问了好多
- 索引
- 分布式 集群中同步
- mysql中int(3)和int(11)
- redis了解什么
- JVM
Java 虚拟机
- 快速排序
三面
- 三面直接炸了 面试官是个高手 刚开始我还以为是个hr 先问的我未来规划
- 最短路径的算法 算法伪代码 什么时候用 为什么
- 冒泡排序什么时候比快排快???(我都惊呆了)
- 快排是不是稳定的 为什么 导致不稳定的具体原因
- java可不可以做嵌入式开发
- 什么情况下java做嵌入式开发比c和cpp还快
- Java的优势(面试官说c也可以做到全平台性 只要linux下编译好就行)
- Android是怎么优化使得手机不卡的
- ....
map的key如果是结构体需要注意什么问题
构造函数和析构函数什么时候调用
为什么要进行内存对齐,具体讲解,内存对齐又会带来什么问题
详细讲解堆和栈的区别,new和malloc的区别,malloc底层原理
详细讲解虚函数,虚函数表放在哪里,虚表指针什么时候初始化
详细讲解static成员变量和static成员函数
进程间通信的方式,共享内存的原理
自旋锁的原理,什么时候用自旋锁,什么时候用互斥锁
CAS
详细讲解单例模式的实现
详细讲解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问题
创建死循环有哪些方式
作者:纠纠翻身
链接:https://www.nowcoder.com/discuss/332884?type=2&order=0&pos=25&page=1
来源:牛客网
猿辅导服务端一面:
1. 自我介绍
2. 讲一个简历上的项目, 为什么用MongoDB而不是MySQL?
3. TCP三次握手过程?四次挥手过程?time_wait的作用?时间是多长?
4. HTTP请求报文都有什么?HTTP的请求方法有什么?PUT和POST有什么区别?
5. 进程线程的区别?
6. 怎么知道死锁了?死锁的必要条件?
7. 链表和数组有什么区别,插入删除的区别(因为我没说到这点)
8. B树和B+树有什么区别
7. 算法:二叉搜索树转有序双向链表,自己写一个用例跑跑我看看!
(这么简单的算法,面试时候看着他真的是大脑一片空白,一个字写不出来,提示一点写一点😂😂😂)
(话说用leetcode刷题只是实现算法,真的从大白板开始写,输入输出,构建个树,还真是蒙)
第一个面试,啥都没复习,所以都不会……
网易有道一面:
- C++ 的gc
- python装饰器
- get和post
- 两个算法:忘了
当时没总结,都忘了。
第二个面试,所以也啥都不会……
腾讯提前批一面:
1. 自我介绍
2. 算法:找到树里两节点的最近公共祖先节点(leetcode 236)
3. 算法:给一个array是新的排序方式,把另一个array里面的字符串按此排序
两个算法都是秒解,然而挂了,玄学,不知道为什么。
小米一面:
- 10万个数选前200大的数字
- KMP算法
- 数组元素整体循环移动
- 链表有环
- 计算机网络几层,都什么
- Http请求报文
- Http请求方法,GET和POST区别
- MySQL索引类型
- B+树为什么叶节点要连起来
- Varchar(32)和char(32)区别
- Java final
- 抽象类和接口
- Char大小,char = ‘中’存的下么
小米二面:
算错了时差错过了,还给了offer,也不知道为啥。
美团一面:
- 项目
- OS: 进程线程?线程占用资源么?都什么?临界资源?属于进程还是线程?用什么操作临界区?进程通信的方法?进程同步的方法?页面分页和分段?
- 网络:TCP和UDP全称?区别特点?用什么实现TCP可靠?UDP不可靠为什么还用?什么情况用UDP?什么协议用UDP?怎么流量控制?为什么滑动窗口可以?访问一个网站的过程?
- Java基础(因为我是Java新手,以前不用Java,所以考的Java比较简单):重写?重载?多态?写一个多态。
- 算法:动态消除相邻相同的数([0,1,2,3,3,2,1,0,4] -> [4])和Leetcode 124
- 闲聊国内互联网形势
美团二面:
- 项目(遇到的困难和引申思考比较多)
- (又由于我是Java新手)我们且国内大多数后台都是Java,你怎么学Java?都需要学什么?最近在看什么?
- Oracle和MySQL区别?
- 滑动窗口和拥塞窗口?有什么用?慢启动与拥塞避免的过程?
- 数据库隔离级别?MySQL默认隔离级别?处理不了什么问题?什么是幻读?
- 算法思考:服务器有很多IP访问,几个T,文件存不下了,现在让你挑出来访问次数最多的10个IP地址?(Divide and Conquer, Hash % n)
- 算法:打印一个菱形
美团三面:
- 出国感想
- 有研究方向么
- 喜欢看书么,看什么书
- 了解什么中间件么
- 国内互联网公司都用什么语言栈?为什么有的是Java,有的是Go
- 想到啥聊啥
和三面面试官三观不合吧,让我不遗憾的是,它是美团打车……
阿里优酷一面:
- 自我介绍
- 你常用的数据结构?排序算法?时间复杂度?稳定性?
- 如何验证XML合法性?
- 计算机网络分几层?都是什么?
- TCP在哪层?这层还有什么其他协议?TCP UDP区别?都应用在什么上?
- TCP可靠有连接,那他还需要心跳机制么?长连接、短连接区别?各自如何实现?
- TCP断开过程?必须要由客户端断开么?HTTP是谁来断开的?
- TCP断开,出现大量的CLOSE_WAIT怎么了?
- Cookie和Session的区别?Session是怎么验证是来自同一个浏览器的?如果不需要登录呢?
- 数据库隔离级别?分别解决了什么问题?MySQL默认什么级别?
- MySQL索引都有什么?为什么用B+树做索引?聚簇索引和普通索引什么区别?
感觉下来,阿里问的很细,确实有一些东西以前没仔细揣摩过。
图森未来一面:
- 算法:最大区间和
- 算法:最大不相邻两个子区间和
两个算法秒解,和腾讯一样,给我挂了,玄学,不知道为啥。
字节跳动后端一面:
- 自我介绍
- netty锁
- 访问网站的过程
- TCP连接和断开的过程?如果服务器和客户端一起断开怎么办?CLOSE_WAIT, TIME_WAIT作用?
- Cookie和Session的区别
- 数据库隔离级别
- InnoDB默认什么级别?如何处理幻读?Next-key Locking怎么实现的?什么是幻读?
- 为什么用B+树,搜索时间复杂度?
- 什么样的要添加索引?索引使用条件?
- Leetcode 33(此处对面试官已无力吐槽,这种都进了宇宙条,只能说他赶上了好时候)
问的太杂了,一个多月确实是复习不了那么全,平时的积累不在开发……唉,遗憾。最想拿的offer,没拿到。
字节跳动客户端一面:
- 自我介绍
- 算法:最大区间和
- 算法:最大不相邻两个子区间和
- C++ map和unordered_map区别
- C++ 析构函数为什么是虚函数?
- 你知道什么设计模式?
- Cpython GIL是什么,特性,有什么用
- Http长连接和短连接的区别,长连接靠什么设置
- 输入一个URL到渲染到页面的整个过程
- HTTPS如何保证安全?SSL整个过程?
- 数据库隔离级别?都能处理什么问题?什么是幻读?
- B+树索引和哈希索引的区别?哈希索引的“自适应性”可控么?
- linux fork()是什么?有什么特性?
字节跳动客户端二面:
- OSI七层
- TCP/UDP
- 应用层有什么协议
http
- 输入域名到渲染的全过程
- HTTP可以用UDP吗,HTTP都知道什么版本,不同是什么
1.0 和1.1
- HTTPS过程,怎么加密的,对称加密算法
- 进程线程,进程通信方式,管道种类
- 算法:topK
字节跳动客户端三面:
- 算法:删除list中的所有target
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()){
int i = iterator.next();
if(i == 1){
iterator.remove(); //正确
}
}
使用迭代器
- 项目,挑战,解决方式
- 算法:非递减数组,找到第一个target的位置,若无,返回-1
- 为什么不去算法岗?(面试官认为我一二三面的算法秒解,就让我去算法岗……然而并不喜欢算法岗,就算想去,看今年形势也进不去……)
华为2012中硬一面:
- 手撸笔试代码
- 字节流第一个不重复字符
- HTTP报文结构?HTTP请求方法?POST请求数据结构?
请求行,请求体,内容
- HTTPS连接过程
TCP连接
华为2012中硬二面:
- 面向对象一系列问题,多态,重载……
- 设计模式,双重校验锁原理,懒汉饿汉原理,抽象工厂原理,设计原则(开闭,单一)
- join
- 微服务?
- 平时看什么技术网站
- 算法:多项式合并
(总之,特别的应用)
华为业务主管面在下周,到时再更新。