面试经验|字节|JAVA后端开发岗位
7100
2021.07.28
2021.07.28
发布于 未知归属地

今天刚收到字节的offer意向书,来和小伙伴们分享下面经,希望能对大家有所帮助!
通知书镇楼,证明下本面经的真实性。

微信图片_20210728113053.jpg

先简单介绍下本人情况:
交大本硕,绩点3.85/4,通信专业,6月开始在阿里实习。

**
重点来了:**

一面:

1、自我介绍

2、JAVA SDK起到的作用

3、项目

4、数据流(项目)

5、排序(介绍下你知道的排序和复杂度)

6、Arrays.sort底层的排序算法

7、堆排序基本思路

8、linux,操作系统的开机流程

9、进程和线程的区别

10、进程切换会发生什么

11、进程调度算法有哪些

12、TCP、udp区别

13、java锁,关键字区别

14、公平锁、非公平锁解释一下

二面:

1.算法题:由前序遍历中序遍历重建子树;
2.为什么静态类(??)中不能使用非静态类;
3.java类加载过程;
3.1.加载阶段中,为什么要有自定义的类加载器;
3.2.双亲委派原则的机制;
4.HashMap数据结构;
4.1.为什么小于6是链表,大于8变成红黑树;
4.2.HashMap扩容机制;
4.3.HashMap是否线程安全,例子;
4.4.ConcurrentHashMap和HashTable的区别;
4.5.ConcurrentHashMap如何保证高效,为什么是线程安全,为什么比HashTable优秀,分段锁机制;
4.6.CAS能保证线程安全吗(不能),volatile关键字能保证线程安全吗;
5.随机数求根。
6.筐固定,移动苹果,使苹果平均(12算1步,13算2步)使步数最小;

三面:

1、自我介绍

2、解决什么问题,做了些什么?

3、多个接口,有失败怎么办

4、redis分布式锁怎么实现

5、时间过期怎么办

6、ArrayList怎么扩容,时间复杂度O(n)?插尾部O(1),平均是多少

7、HashMap底层

8、mysql索引什么原理、B+树

9、mysql和redis区别

10、为什么不用redis存数据?

11、算法:LRU缓存(),先讲一下

个人总结和建议:

运气好,基本都答上来了,除了linux相关的。
给大家的建议是,
多刷剑指OFFER!!!!
多刷剑指OFFER!!!!
多刷剑指OFFER!!!!
这个真的好用
项目多准备
项目多准备
项目多准备
即使没做特别复杂也最好先搜一下遇到某些复杂场景的措施,比如redis突然挂了,db挂了,高并发之类的
最后祝大家都能上岸

致谢

感谢实验室王同学(@ Ray),汪同学,赵同学,大家一起复习,互相抽查

评论 (16)