写点什么

从面试无人问津到手拿百度 offer,还原一段野生程序员的成长经历

用户头像
Android架构
关注
发布于: 2 小时前

在第二家公司,也慢慢的技术视野和深度的扩展,能从容应对开发和各种问题。由于公司没有涨薪制度,所以就有了跳槽的计划准备,没想到,这一准备,就是 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


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


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 内存优化

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
从面试无人问津到手拿百度offer,还原一段野生程序员的成长经历