今天刚收到字节的offer意向书,来和小伙伴们分享下面经,希望能对大家有所帮助!
通知书镇楼,证明下本面经的真实性。
自我介绍
先简单介绍下本人情况:交大本硕,绩点3.85/4,通信专业,6月开始在阿里实习。
重点来了:
Java学习、面试;文档、视频、刷题笔记+Java全栈开发学习路线图点击这里领取即可
一面:
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能保证线程安全吗(我回答能,面试官说不能。。估计想考ABA问题),volatile关键字能保证线程安全吗;
5.随机数求根,比如根号二的值。(二分查询)
6.有n个筐,筐固定,每个筐内有不同数目的苹果,移动苹果,使每个筐苹果平均(移动的代价:12算1步,13算2步)使步数最小;
三面:
1、自我介绍
2、解决什么问题,做了些什么?(项目)
3、多个接口,有失败怎么办(项目)
4、redis分布式锁怎么实现
5、时间过期怎么办
6、ArrayList怎么扩容,时间复杂度O(n)?插尾部O(1),平均是多少,答案O(2)需要考虑扩容,小伙伴们可以自己推一下。
7、HashMap底层原理</