百度安卓1,2,3面面经(已收到HR的通过电话!)
一面
1. 接口和抽象类的区别,抽象类能有非抽象方法吗?,接口能有实现方法吗?
2. protected访问权限
3. final 作用
4. 泛型的理解
5. HashSet, HashMap两者谈一谈?
6. 用过RxJAVA吗?
7. Kotlin了解过吗?
8. 讲讲异常
9. try-with-source接触过吗?
10.volatile讲一讲
11. 设计模式了解哪些,讲一讲
12. 装饰模式和代理模式的区别
13. 讲讲设计原则,谈谈了解最深的一个
14. view事件分发机制
15. Handler每个线程都需要创建吗?
算法题:
1. 二叉树的层序遍历,leetcode原题。
二面
1. 手机输入一个url给游览器,发生了什么
2. HTTPS讲一下流程
3. 观察者模式谈一谈
4. 线程的状态和状态间的转换
算法题:
1. 二叉树的层序遍历,(以为是一面的改进版,Z型,锯齿型遍历这种,但是面试官说的意思跟一面的差不多,就和一面写了差不多的代码。)
2. 一亿个人,按年龄排序,时间复杂度为O(n)。(桶排序)
3. 一个记录url的文件,文件大小10G,找出重复次数最多的100条url(利用一致性哈希分十个小堆,然后进行堆排序)
第1题手撕,2,3题口述。
三面
1. 自我介绍
2. 方案中遇到的难点,怎么解决
3. 学习计划
一些HR面的题吧,相对轻松,应该是主管面,夹杂一些HR面的问题,百度没有HR面。面试官也不是做安卓的。
算法题:
1. 判断二叉树是否是镜像,利用递归和迭代实现,leetcode原题
2. 合并两个有序链表A,B,并将合并的结果存储在A,假设A足够大。(其实就是相当于手撕归并排序的merge步骤)
反问:
1. 面试评价和建议
聊了一下如何学习,还聊了下关于面试技巧的谈论。
2. 面试的流程
进池子泡,九月底出结果? 是否录用什么的是HR决定的,面试到这里就基本结束了。后续他们面试官是不参与的。
三面的是时候面试官问了是投北京还是深圳的,我说是深圳,面试官说深圳HC有点少, 百度毕竟北京才是总部……Sad,可是我投都投了,尝试性问了可以改成北京的不? 面试官说不可以。早知道就投北京了,主要是南方人不爱跑北方,不然其实没什么差别。等看看九月底的开奖结果吧,牛客许愿百度能给个offer!