#字节# #面经#
字节面完了,期待一手,捞捞我。来跟各位牛油分享一下。总体感受,字节面试官非常和蔼,不会的都循循善诱,并没有为难你的意思。以下纯八股,项目部分基本省略了。
一面
- 手撕:寻找比k小的最大数,输入n,例如23121,输入数组A{2,4,9},输出比k小最大数22999。
- 计算机网络:
- TCP是如何保证可靠性的
- TCP为什么是三次握手,结束却是4次挥手
- 为什么需要等待TIME_WAIT,
- 操作系统:
- 了解虚拟内存吗?虚拟内存怎么实现的?谁知道怎么实现的。。
- 听过缺页中断吗?讲一下什么是缺页中断。
- 进程间通信方式有哪些?
- 你知道进程间通信最快的方式是什么吗?共享内存
- 共享内存,具体是怎么实现的,处于用户态还是内核态?不清楚。
- 如果两个进程同时操作共享内存,会有什么问题?
- 那如何解决进程间的并发同步,有哪些方式?
- 如何快速定位内存泄漏问题?先回答一下什么是内存泄漏?
- C/C++的内存泄漏和java的内存泄漏分别讲下。
- 在开发过程中有没有遇到,内存突然增加情况?
二面:
- 操作系统:
- 原子操作,你了解吗,底层原理是什么?鬼知道啊
- 虚拟内存和共享内存讲一下
- 线程和进程的区别,线程是如何调度到多个CPU上进行运算的。
- 知道分页机制吗?大页怎么办的。分页存储还是,TLB的huge page不清楚。
- 数据库:
- 数据库事务介绍一下
- 如何保证要么都执行,要么都不执行,用redo日志和undo日志保证一致性和持久性
- 那了解过redo日志的存储格式吗?我怎么知道?
- 数据库事务隔离,怎么做的。
- 为什么mysql数据库用B+树?B+树的优点
- 那为什么mongoDB要用B树呢?
- 计算机网络:
- TCP为什么是三次握手,4次挥手
- 那假如TCP发送回复,没有收到响应怎么办?
- 那SYN洪范攻击呢?解释下,怎么防范.
- HTTP响应头部有哪些字段了解吗?
- HTTP和HTTPS区别是什么?
- C语言:
- 说一下堆和栈的区别
- 说一下static用法
- 说一下双指针,指针的指针经常用在什么情况?
- 说一下怎么避免野指针的问题,如果别人给你传了一个野指针,那么你怎么办?如何判断是野指针?
- 手撕:多线程打印数据。
- 合并两个有序链表,写出来了为啥不对呢。
三面:
项目:
- openstack组件有哪些?
- openstack overlay和underlay网络?不清楚,具体修改的部分。
Java:
- 说一下java的锁有哪些?synchronized和Lock
- 有用过java的List集合用过吗?有哪些》ArrayList和LinkedList的区别。
- 有其他的集合吗?Set、Queue、Map,各自的使用场景。Map是如何解决哈希冲突的。
- FullGC做了什么?新生代里面有什么?老年代里面呢?新生代老年代怎么转移的。有没有可能直接进入老年代?
- java锁,如果用C实现是如何实现呢?使用信号量之类的。怎么用呢?
操作系统:
- ps -ef查看进程列表,讲一下里面常用的字段含义呢?
- 想查看当前内存使用情况用什么命令?top、vmstat
- 讲一下vmstat输出的swap、buffer、cache的区别?
- 虚拟地址空间是什么,用来干嘛的?
- 如果父进程在进程前退出了会发生什么?成为孤儿进程,会被init进程接管。
- 为什么操作系统所有进程都要设计父进程?0号进程和1号进程
计算机网络
- 知不知道iptables、netfilter,不知道
- TCP和UDP的区别
思维题:9辆车、1个环形赛道,一次只能跑三辆车,赛道没有计时器,无法知道每辆车跑完需要多久,但是可以知道谁先谁后,请问想知道9辆车里面跑得最快的2辆车是那两辆,最少需要跑多少次赛道。
手撕:反转链表
hr面:
- 经过前面几轮面试,有对要做的业务有了解吗
- 对于工作强度怎么看的。
- 投递了哪些公司?有没有offer?都是这个岗位吗?
- 有没有投递腾讯阿里?
- 项目中有没有有人delay的情况?
- 父母对工作地有什么看法吗?
- 毕业答辩完能不能提前过来?
#字节##牛客在线求职答疑中心##24届软开秋招面试经验大赏#