字节头条客户端开发一面面经

之前提前批投的字节影像客户端三面挂了,然后被深圳头条给捞起来重新面

字节头条客户端开发一面面经(技术面,视频,1.5h)

1.C++

(1)32bit机器,sizeof(A) = ?(12字节)

struct A{
  char a;
  int b;
  short c;
};

(2)32bit机器,sizeof(A) = ?(4字节)

union A{
  char a;
  int b;
  short c;
};

(3)大端序和小端序介绍下?

(4)大端/小端, int i = 0x12345678,如何判断大小端?

union A{
  int a;
  char b;
};

bool isBigEndian(){
  union A obj;
  obj.a = 0x12345678;

  return obj.b == 0x12;
}

(5)A && B || C && D执行顺序?(先执行A && B,再执行C && D,最后执行 (A && B) || (C && D) )

(6)&&和||优先级哪个更高?(&&大于||)

(7)inline函数是什么?

(8)extern关键字?用来修饰什么变量?

(9)static关键字?作用域、生存期?

(10)指针和引用区别?

(11)智能指针?(说了下RAII,介绍了shared_ptr、weak_ptr、unique_ptr)

2.网络

(1)TCP三次握手中,SYN、ACK、seq、ack四个字段的含义?

(2)HTTP和HTTPS的区别?

(3)HTTPS密钥协商的过程?

(4)如何实现HTTP长连接?(1.0里Connection:Keep-Alive,1.1里默认开启长连接)

(5)浏览器断点续传,分段下载时,HTTP用的哪个字段?(不会,答了个content-length字段,懂得大佬麻烦说一下)

3.OS

(1)进程和线程的区别?

(2)进程间通信机制?

(3)Linux如何创建进程?(fork,写时复制)

(4)什么是僵尸进程?如何处理?(wait/waitpid)

(5)线程同步的方式?(互斥锁、自旋锁、读写锁、条件变量、信号量)

(6)互斥锁和自旋锁的区别?

(7)死锁的四个必要条件?

(8)如何避免死锁?(银行家算法)

(9)线程池如何设计的?(线程池、任务队列、互斥锁、条件变量)

(10)线程池里面的线程是如何实现执行完函数后不结束的(while)

(11)那会不会造成CPU空转的情况呢?(不会,条件变量,条件不满足时会自动释放锁,然后进入阻塞)

4.DB

(1)从Person表中查询Age在18-25之间的数据,根据身高Tall由高到低排序

(2)接着(1)增加 Name 包含A(查询包含A的Name)

5.代码

(1)如何判断两个链表是否相交?

(2)(Leetcode162)一组数据,不存在num[i] = num[i+1],返回任意一个峰值。峰值:左右都比该值小则该值称为峰值。

数组测试样例:
(1) 1232143
(2) 321
(3) 123

6.反问

#字节跳动##面经##校招#
全部评论
感谢老哥 问的一模一样 可惜我没背 蹲个二面 哈哈
1 回复 分享
发布于 2021-09-08 16:43
问的好难啊
1 回复 分享
发布于 2021-09-14 21:38
网络第5题,应该是涉及到if-range和range bytes这两个请求头,server返回的http code为206
点赞 回复 分享
发布于 2021-08-30 22:52
请问lz有c++的项目吗, 还是说主要都是考八股, 我也是客户端, 明天二面QAQ
点赞 回复 分享
发布于 2021-08-31 13:00
好难,是真的好难😂
点赞 回复 分享
发布于 2021-09-16 22:20

相关推荐

CrazyBucket:我今天下午也做梦在招聘会上面试一家小厂,给自己气笑了
点赞 评论 收藏
分享
4 51 评论
分享
牛客网
牛客企业服务