秋招面经总结(持续更新中)

大华:(一面8月12,二面8月15)

一面:(25分钟)

1、自我介绍

2、博客都是关于哪些技术的

3、fork源码的剖析(只是简单的剖析吗?有没有将其替换掉使用)

4、select、poll、epoll的区别

5、raw_socket的原理以及和TCP/UDP中socket的区别

6、libevent的工作原理

7、在TCP/IP五层传输协议中,数据传输的方式还有给数据加头加的是什么头

8、拥塞避免的算法

9、良好的编程习惯是指?

二面:(35分钟)

1、讲一下shared_ptr,它的引用计数是在堆上还是栈上? 它的对象在堆上还是栈上?指针是在堆上还是栈上

2、讲一下三次握手,为什么两次不可以?(我其实不该说状态的,可能我不说状态就没有下面这个问题了吧,自己挖的坑自己要负责)

3、讲一下socket编程中的具体函数所对应的状态?我说了编程的流程,然后说到connect和accept那里,面试官问那connect之后的状态?accept之前是什么状态?是已经连接建立好了吗?我说没有,但是现在想明白了,connet之后建立完三次握手连接了,返回的那个套接字它是在listen监听队列中的,此时如果这个套接字上有事件那直接accept就行(迷,我不知道说对了没有)

4、讲一下二叉树、满二叉树、完全二叉树

5、说一下常用的shell命令

6、文件传输项目中传输数据的具体细节、上传文件的时候怎么判断这个文件在服务器端已经存在了,md5值,只有文件名相同的才能进行计算md5值?那要是文件名不相同那是不是就算有重复的也可以继续上传了?

7、四种强制类型的转换的使用,并具体举例,dynamitic_cast是从基类强转成派生类还是从派生类强转成基类

8、很多个整型数据找TOP10,最小堆的实现

9、多个线程去访问一个资源可不可以?会产生什么问题?可以,但是会引起线程不安全;那怎么解决呢? 

10、C++11新特性了解吗?

字节跳动(8月18日连续三面)

一面:(46分钟)

1、算法题:两个有序数组的合并

2、如果是多个有序数组(N个有序数组,每个数组长度为M)的合并怎么做?

(1)采用小顶堆,然后首先取出每个数组的第一个元素来构建小顶堆

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值