字节OC了,回馈牛客。
回馈牛客,找实习的时候看了不少牛客的帖子,今天终于如愿拿到了字节的后台实习offer,记录下了三面完整过程,希望能给大家带来一点帮助。
一面(1h)
1. 自我介绍
2. 项目相关问题,做的是一个在线教育项目,询问某一模块的具体实现
3. redis在项目中怎么用的(首页数据,短信验证按)
4. String/stringbuffer/stringbuilder三者的不同点、stringbuffer是如何保证线程安全的
5. java中四种引用有了解吗?分别是用来做什么的?(强引用、软引用、弱引用、虚引用主要是在gc时候有区别)
6. 常见的垃圾回收算法有哪些?(复制、标记清除、标记整理、分代算法)
7. 什么情况下会引起gc?(新生代、老年代空间不足、空间分配失败、永久带加载类过多等)
8. 单例模式实现?(懒汉式、饿汉式,双重检验+volatile+synchronized)
9. volatile的作用,底层如何实现?(可见性、禁止指令重排,底层实现是加lock前缀指令+嗅探机制保证其他线程共享变量失效,读写时候加入内存屏障禁止指令重排,结合jmm中happens-before原则和as-if-serial原则去保证)
10. Java中异常体系?Error可以捕获吗?(error和exception,exception分为编译时异常和运行时异常,编译时异常必须处理,可通过throws或者try-catch-finally处理,运行时异常不需要处理)
11. TCP四次挥手的全过程?(网上有很多,说的越详细越好,包括fin位,以及每次客户端和服务端的状态)
12. 为什么要等待2msl?(万一报文丢失可以重传,保证本次网络中所有的遗留连接报文段全部消失)
13. io多路复用原理?Select/poll/epoll区别,底层实现?(select、poll轮询所有流,poll处理发出信息的流,select最大1024个,底层类似数组,poll是链表,无最大限制,epoll是红黑树,且只需要向内存中复制一次,poll和select每次调用都需要向内存中复制一次,select几乎所有系统都支持,epoll只在linux中用,但是三者其实本质上还是属于阻塞式io)
14. https协议过程,如何实现认证和加密?(ca证书、非对称加密、对称加密等)
15. 进程通信的方式?有什么不同,哪种最好?(管道、消息队列、共享内存、信号量、socket,说一下具体的区别等)
16. 事务的隔离级别,具体展开讲讲(acid属性,以及出现的各种问题,解决方案,mvcc、锁机制等)
17. 算法题:删除排序链表中重复的数字,例如1-2-2-3变成1-3(力扣原题,迭代法解,注意边界条件)
二面(3.21-1h)
1. 自我介绍
2. 可以实习多久?
3. 之后的打算,会留在北京吗?(看情况吧,能留就留)
4. Post和get区别(功能不同,位置不同,长度不同,支持字符不同,幂等、是否可缓存)
5. Tcp、tdp应用场景?(http/https、ftp等用tcp,dns等用udp)
6. DNS的详细过程(递归请求根服务器、顶级服务器、权威服务器,通过cdn做一个负载均衡等)
7. 进程调度算法(先来先得,短作业优先,最短剩余时间优先,现代os采用时间片轮转、优先级调度、多级反馈队列等)
8. 死锁问题,解决方案?(四个构成,解决方案等,破坏四个条件,银行家算法,进程回退、鸵鸟策略等)
9. 同步和互斥的理解?(互斥是一种同步方式)
10. 如何实现线程安全?(final、synchronized、aqs、乐观锁等)
11. Spring中ioc如何理解,具体怎么实现?(控制反转、底层实现)
12. Ioc底层原理?(工厂模式+反射)
13. b树和b+树的区别?(范围查询、io效率等、稳定的时间复杂度)
14. 算法:实现lru算法
数组中只有两个数字出现一次,其他都出现两次,找出这两个数
三面(1h)
是个大佬,和一面、二面感觉很不一样,压迫感十足,不晓得字节是不是三面都是这个样子
。上来直接问项目说这个项目是不是在学校里面做的一个demo,然后就不问项目了,八股也不问了,直接让做题。第一道是一个字节内部的题,力扣上没有原题,让自己实现一个cache,类似lru,设置一个自动过期时间,过期了自动去除对象,因为没有怎么写过类似的题,整个过程写的磕磕绊绊,在面试官提示下最终完成。写完以后面试官又出了一道其他题,找零钱问题,典型的完全背包问题,直接秒掉了。然后问了一下数据库的相关问题,幻读、脏读的区别啊,怎么避免等等?间隙锁底层是怎么实现的?如何加锁?最后问了一下你觉得你的优势在哪里?最后就是常规反问了。整个过程就是感觉比较压抑,面试官给人的感觉像是能把你看穿,问的问题也不是很常规,许愿offer吧。
#字节跳动实习##实习#