无题
手撕记录
快排;稳定版本快排;三路快排;
堆排序;
最长递增子序列;
最长无重复子串;
智能指针shared_ptr;
字节国际化社区测开面经
1.介绍一下TCP/IP协议
2.MAC地址和IP地址有什么区别
3.介绍一下什么是局域网
4.讲一下DNS
5.DNS协议具体是怎么找到服务器地址的
6.介绍一下什么是Socket
7.详细介绍一下socket是怎么建立连接的
8.一个端口可以建立多个连接吗
9.对webserver项目进行深入的介绍
10.webserver项目中HTTP请求处理的细节
11.服务器实现的路由机制
12.介绍一下利用Epoll实现Reactor事件模式,什么是IO多路复用
13.Epoll的实现效果,提升了多少?
14.介绍一下什么是双向链表,Epoll为什么要用双向链表?
15.Epoll中双向链表与红黑树机构的应用方式?双向链表怎么发挥的作用?
16.介绍一下什么是红黑树?
17.进程、线程和协程有什么区别?
18.C++内存泄漏的场景?怎么避免内存泄漏?
19.介绍一下什么是B+树?B+树一般怎么去用?
20.介绍一下git分支管理?什么情况下会发生冲突?
21.手撕:字符串最长无重复字串长度?(不到十分钟就说时间到了,不用写了)
百度C++后端一面0728
1.自我介绍
2.实习内容
3.项目内容
做什么? 为什么做 ?有什么效果?
4.C++用了多久?Python用了多久?
5.详细解释Reactor模型?如何利用Epoll实现这个模型?
6.简单解释TCP与UDP的区别?
从特点到socket通信的实现的区别,引出握手;
7.TCP的三次握手与四次握手
8.常见的HTTP请求方式?以及状态码?
除了get和post还有哪些请求方式?
9.一个HTTP的请求报文有哪些内容?
10.HTTP与HTTPS的区别?
11.说一些常见的排序算法原理以及时间复杂度?
12.插入排序和归并排序了解吗?
13.讲一下什么是B+树?有什么特点?
14.B+的应用场景?
数据库系统;文件系统;存储系统;
15.数据库为什么用B+树和B树?
16.详细解释一下LRU算法?LRU算法的应用场景?
内存管理;缓存策略;
17.Redis用过吗?
Redis的缓存淘汰策略:LRU;
18.如果一个网站访问慢你会从哪些角度分析原因?
动态请求,后端数据库处理耗时;
网站会加载相关的cs,js文件;
静态资源一般会用CDN(内容分发网络)加速;(数据传输链路过长会导致速度慢);
19.知道什么反向代理吗?
Ngix; 请求baidu.com,
20.说一下对进程、线程和协程的理解与关联
21.手撕:快速排序和LRU
快手一面(C++ 网络SDK)
1.自我介绍
2.手撕
3.简述C++虚函数的用法
4.析构函数一定成虚函数吗
5.for(C c: c_array)与for(C& c:c_array)的区别
6.简述一下const的用法
7.const可以用来修饰函数吗?
8.简述一下几种常见的排序算法以及时间复杂度?
9.C++确保线程安全的几种方式?
百度C++后端二面0804
1.实习情况
2.项目情况
3.HTTP服务器做了哪些改进
4.在项目中遇到的问题有哪些?
5.go会用吗?
6.数据库用的怎么样?
7.编程能力怎么样?正常写的程序多吗?
8.C++的内存管理如何理解?
9.share_ptr的实习细节?智能指针在项目中有哪些使用情况?
10.什么是野指针?
11.C++多态的实现机制与作用?
12.场景题:几十亿个数据取出一百个怎么实现?
哈希+分割 多线程并发
内存以及速度都要考虑
13.C++类型转换
14.const与static怎么理解
15.session与cookie的区别
16.MySql场景题
17.设计一个系统,有多个管理员管理数据,两个或者管理员同时操作相同的数据怎么解决冲突
乐观锁;死锁;线程通信;
18.思维方式更倾向于解决实际问题
19.web server项目中的异步日志系统如何实现的
美团一面0904
1.手撕:全排列、树的最小深度
2.自我介绍:个人情况+专业技能
3.TCP三次握手的过程
4.为什么要三次握手,有哪些原因(1,2,3)
5.TCP三次握手的序列号起到一个什么样的作用(保证TCP连接的一个可靠性)
6.TCP属于哪一层
7.OSI为什么要分为七层?或者说为什么要分层?(架构的考虑,可拓展性,不同层处理不同的功能)
8.项目里面用的是HTTP还是HTTPS,两者的区别是什么
9.HTTP属于哪一层
10.Reactor并发模型的机制
11.为什么需要线程池?线程池有哪些优点和缺点(线程复用,线程复用也会带来线程本身的残留给其他线程造成污染)
12.如何解决线程并发问题
13.信号量与锁的区别
14.notify_all与notify_one的区别与机制实现
15.大概有哪三类并发问题?(原子性、可见性、顺序性)
16.项目里面有没有用到数据库?
17.MySQL建立业务表的索引会有哪些依据?怎么决定对哪些字段加索引?(基于业务的需要->加快查询效率)
18.MySQL的日志有了解吗?
19.除了MySQL还使用过哪些组件?(Redis)
20.为什么MySQL和Redis的学习浅尝辄止(还需要了解一下消息队列)
21.在平常的学习和项目中难以解决的问题
22.对于学习Java有什么思路?
23.看过哪些源码?看这些源码有没有结构化思路
24.反问:部门业务(美团到店);具备的技能:软实力(沟通协调)与硬实力(db,redis,消息队列)
美团二面09011
1.自我介绍
2.项目的背景介绍
3.深挖项目
HTTP服务器的实现过程;
IO复用技术的优点在哪里;
固定1万个活跃的连接需求,在这种情况下IO多路复用还有必要吗?
IO多路复用适用哪些情况下?
epoll相对于select,poll的优点是什么?
epoll为什么要适用红黑树?
epoll与poll是如何发现当前有哪些文件描述符有事件到来?
正则表达式和有限状态机实现HTTP报文解析的过程?
缓冲区的自动增长是如何实现的?为什么需要缓冲区?
怎么判断当前缓冲区不够?(和什么相比)
缓冲区不够用的时候:1.加大缓冲区;2.加快读数据的速度
缓冲区有浪费的时候有实现resize()吗?
讲讲单例模式实现的异步日志系统?
懒汉模式与饿汉模式的区别?
定时器的实现原理?为什么要用小顶堆?小顶堆的排序什么时候发生?每过来一个网络事件都要做堆的调整吗?
4.手撕求组合
5.反问(有没有对部门业务想了解的地方)