9月6日字节跳动后端开发(技术中台)一面面经


热身

1、自我介绍

2、别的语言感兴趣吗?特别大概率转Go,除非特殊需求用到Java以外,进字节都是用GO的。(没想到这么开门见山)

通用语言基础

3、深拷贝和浅拷贝?对象实现深拷贝应该怎么做?如何做到即使新增字段也不用修改深拷贝方法?

4、类中的静态变量和实例变量的区别?类A有三个实例,他们相等吗?

5、程序运行时的堆区和栈区,它俩有什么区别?类A的三个实例,这三个对象放在哪?

操作系统

6、进程和线程的区别?

7、两个线程交换数据和两个进程交换数据,哪个比较简单一些?

8、进程间通信有哪些方法?

9、死锁是怎么产生的?给你A、B两个进程,给你两个互斥资源,模拟一下进程死锁?

网络原理

10、TCP和UDP的区别?为什么UDP更快但不稳定?怎么样理解TCP的稳定性?(这个是我给自己挖的坑)TCP怎么保证数据不丢不错?UDP有校验和吗?

11、服务端接受客户端的请求,分配端口跟客户端通信,然后有一天被告知端口被分配完了,检查发现,这些端口都处于close-wait的状态,这个状态是怎么产生的?考虑代码错误的话,因为哪一步没做,导致close-wait状态?

12、网桥工作在哪一层?(数据链路层)网桥端口连了很多主机,刚连接上主机,收到一条信息,要去某个MAC地址,网桥应该怎么做?(尽力转发,广播)总不能一直广播吧?(自学习,转发表)

算法和数据结构

13、你知道的排序算法有哪些?(十大排序算法)

14、说一下快排算法思想?一次操作时间复杂度是多少?快排算法本身的时间复杂度?最坏的时间复杂度?什么情况下复杂度最坏?有什么办法让O(n^2)的情况下尽可能少的出现?

编程题

15、最长连续序列

  • 给定一个未排序对数组,返回这个数组最长的连续序列的长度

输入:[100,4,200,1,3,2]

输出:4 (最长连续序列是 [1,2,3,4])

思路:刚开始说排序,然后遍历对比,时间复杂度为O(nlogn)。在面试官循循善诱下,想到用set去重以后,再遍历。遍历到100,移除set,找99是否存在,找下去;然后找101是否存在,找下去,对比最大值。由于set的add、contains、remove等方法的时间复杂度都是O(1),最后时间复杂度降为O(n)。

#字节跳动##面经##后端开发#
全部评论
hello,想问一下技术中台,当时的笔试内容是什么呀
点赞 回复 分享
发布于 2021-09-07 10:33
8月29号笔试,9月6日晚8点~9点面试,9月7日下午两点半收到感谢信,遗憾止步与一面
点赞 回复 分享
发布于 2021-09-07 14:37
这是base哪里?
点赞 回复 分享
发布于 2022-02-21 23:22

相关推荐

盒马一面11人在聊 查看11道真题和解析
点赞 评论 收藏
分享
2 35 评论
分享
牛客网
牛客企业服务