从面试无人问津到手拿百度 offer,还原一段野生程序员的成长经历
在第二家公司,也慢慢的技术视野和深度的扩展,能从容应对开发和各种问题。由于公司没有涨薪制度,所以就有了跳槽的计划准备,没想到,这一准备,就是 2 年时间,靠着总结和积累,跳槽就水到渠成,没有多少运气加成,全是踩坑过河。
所以,对科班人来说,我就是最笨的成长。虽然初期的成长慢了些,但是我有我的坚韧性格,成长多远,多半靠自己,多多灌输自己点励志鸡汤,多多学习别人的长处,多虚心请教别人的心得和学习习惯,成长也是很快的。今年也顺利拿到了百度的 offer,附上面经整理!
[](
)百度安卓工程师社招面经(一面、二面、三面已拿 offer)
一面:
§ [算法](
):
[给你 n 个数,找到最大的 m 个数](
)
相关知识点: [堆](javascript: void(0))[排序](javascript: void(0))[分治](javascript: void(0))
相关知识点: [堆](javascript: void(0))[排序](javascript: void(0))[分治](javascript: void(0))
相关知识点: [堆](javascript: void(0))[排序](javascript: void(0))[分治](javascript: void(0))
相关知识点: [堆](javascript: void(0))[排序](javascript: void(0))[分治](javascript: void(0))
§ equals 和 hashcode 说一下
§ 线程创建的方法?线程池原理说一下?线程同步的方法?
§ HashMap 说一下?
§ [百度](
)贴吧的子帖的实现方法(主帖里面的评论帖,分别从数据库和移动端两个方面来说一下)
§ 如果在一个论坛主界面有很多帖子,并且在主界面上都显示这些帖子的图片(每个帖子 9 张),怎样避免 OOM。(讲了两个思路,一个思路是展示缩略图,点击展示大图,另一个是横向 ListView,滑动查看更多,滑出范围对 Bitmap 进行回收)。
§ 图片压缩过程和缓存相关说一下?LinkedHashMap 跟 HashMap 的差别是什么?底层原理是什么?
二面:
§ [算法](
):
[给你一个字符串,判断是不是标准的 ip 地址](
)
相关知识点: [字符串](javascript: void(0))
相关知识点: [字符串](javascript: void(0))
相关知识点: [字符串](ja
vascript: void(0))
相关知识点: [字符串](javascript: void(0))
相关知识点: [字符串](javascript: void(0))
相关知识点: [字符串](javascript: void(0))
。(我写完一个之后,说让我把所有的测试用例写出来,发现有几个遗漏掉了,面试官说,让我根据这些测试用例重新再写一下,考察代码扩展优化能力。)
§ 自我介绍,聊聊[项目](
),问我数据来源和数据库设计比较多。([项目](
)上聊的比较多)
§ 举了个数据库联合查询的例子,写个简单的 SQL 语句。(join)
§ TCP 的三次握手说一下?为什么是三次握手?为什么是四次挥手?
§ TCP 的滑动窗口原理知道吗?(我说原理不清楚,但是我知道他解决的是什么问题。)
§ hashMap 是线程安全吗?如何实现线程安全?
§ Android 的持久化存储方式说一下?
§ Android 的启动模式和场景说一下
§ Android 的 ANR 知道吗?怎么避免?
§ 内存溢出和内存泄露说一下(中间有提了下 Handler)
三面:
§ 你为什么选择换工作?
§ 你组里面的人都怎么样?
§ 你怎么解决项目中的难点?
§ 你有工作中遇到过哪些比较麻烦的地方?
§ 你平时怎么学习的啊?
§ 你除去学习之外都看什么书?
[](
)面试准备
下面是我花了将近一年的时间整理的一份面试题库。这些面试题,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,我都统一的整理了一下,希望对大家有用。作者不易,如有错误望见谅。
[](
)一、Android 基础+进阶
1.Activity 启动模式
2.Activity 的启动过程
3.进程通讯
4.Android Binder 之应用层总结与分析
5.进程保活方法
6.从源码了解 handler looper ,messageQueue 思路
7.handler 如何实现延时发消息 postdelay()
8.Android 中为什么主线程不会因为 Looper.loop()里的死循环卡死?
9.RxJava 原理及如何封装使用
10.okhttp 源码分析
11.retrofit 源码分析
…
**由于篇幅有限,只能分享部分面试题,更多面试题及答案可以我的[点击这里免费下载获取!](
)阅读下载哦~无偿分享给大家,算是一个感恩回馈吧**
12.LeakCanary 核心原理源码浅析
13.LruCache 使用及原理
14.ARouter 原理
15.注解框架实现原理
16.Android 如何编写基于编译时注解的项目
17.RxJava2+Retrofit2+OkHttp3 的基础、封装和项目中的使用
18.Rxjava2.0+Retrofit+Okhttp(封装使用)+MVP 框架搭建
19.Android 插件化和热修复知识梳理
20.Android 开发中比较常见的内存泄漏问题及解决办法
21.如何检测和定位 Android 内存泄漏
22.图片占据的内存算法
23.为什么图片需要用软引用,MVP 模式中的 view 接口用弱引用
24.基于 DataBinding 与 LiveData 的 MVVM 实践
25.App 稳定性优化
26.App 启动速度优化
27.App 内存优化
评论