Android开发社招⾯试经验:15个经典⾯试问题及回答思路,附超全教程⽂档
开头
年前⾯试了⼀些公司,⽬前已经拿到了阿⾥跟头条的 offer。去年我也出去⼯作了,⾯试五家拿到了四家公司的 offer。所以在⾯试⽅⾯我应该可以提供⼀些愚见吧。本篇会讲解⼀些常见题⽬以及⼀些答题技巧。
其实⾯试的过程也是对⾃⼰知识的⼀个梳理过程,⼯作中我们学到的东西都是碎⽚化的,那么⾯试前我们就需要把这些碎⽚化的知识梳理出来,形成⾃⼰的知识体系。每个⼈都应该建⽴⼀套⾃⼰的知识⽹络,⽽这个知识⽹络就是你的资本,让你的资本不断扩⼤你才会变的更有价值。
正⽂
⾯试总共花费30天左右,才拿到了offer。
⼀⾯
1.⾃我介绍
2.项⽬
3.四⼤组件
4.activity⽣命周期
5.启动模式
6.线程状态
7.⽹络协议(每⼀层、还有TCP和UDP)
8.会不会⽹络编程
9.handler
10.JVM,内存模型那些
11.GC(有哪些⽅法那种问题)
12.项⽬中的数据库
13.HashMap、HashTable、ConcurrentHashMap
14.反问环节
⼆⾯
视频⾯试。这⼀⾯依旧是初试,应该是交叉⾯?
1.⾃我介绍
2.项⽬(这⾥花了好多时间emm,他会根据我项⽬⼀路提问)
3.算法题:字符串根据字典分割的问题。⼀开始给的解决⽅法时间复杂度太⾼,⼀直要求优化。还有⼀题我忘了……
4.TCP和UDP以及应⽤场景
android学习教程5.JAVA与JS(为什么都喜欢问这个?)
6.其他忘了……也是挺基础的
7.反问
这⼀轮⾯试很发散,主要还是针对项⽬进⾏讨论,问的问题挺有针对性的(主要是项⽬)。
三⾯
2.⼴播和 EventBus 的区别?
3.常⽤设计模式你了解哪些?
4.跨进程通信有哪些?
5.简单讲讲 binder 驱动吧?
6.跨进程传递⼤内存数据如何做?
7.说说 ConcurrentHashMap 的实现原理说下,初始化⼤⼩是多少?
8.启动优化怎么优化?
9.你写的 rxpay 和 rxlogin 具体怎么实现的?
10.kotlin + fullter ⽅⾯的
四⾯
1.单例设计模式都写写,静态内部类是怎么保证线程安全的?
2.synchronized 底层实现原理,ReentrantLock 公平锁与⾮公平锁。
3.主线程等待所有线程执⾏完毕,再执⾏某个特定任务怎么实现?原理和源码看过没?
4.⾃定义 view 的⼀般流程,要注意些什么如何优化,点击事件和长按时间分别是怎么实现的?
5.四种启动模式,在源码分析中的原理是怎样的?
6.讲讲 bindService 的过程,你当初是怎么优化后台服务进程的?
7.开发中你都⽤到了哪些设计模式?说说当时具体的场景。为什么你要⽤⽅法⼯⼚,另外两种呢?
8.RxJava 在使⽤过程中碰到了某些不友好的错误⼀般怎么解决?发现了内存泄露⼀般怎么解决分析,有没有碰到过系统服务内存泄露的问题?
9.你们⽤的 okhttp ?那你有没有做过⼀些⽹络优化呢?⽐如弱⽹环境。
10.给你个数 1 吧,⽐如 1000011 ⾥⾯有⼏个 1 ?
11.快排了解不?最坏的情况是怎样?如果有⼤量重复数据怎么优化?
五⾯
1.讲讲 handler 的底层实现原理?
2.说说你做的⽇志记录优化?
3.你看过 binder 驱动的源码,说说他的内存映射过程,说说客户端等待服务端处理返回的流程,如果要跨进程传递⼤内存数据你具体会怎么做?简单写⼀写吧。
4.在公司做过哪些优化?
5.过程中遇到的⼀些最难解决的问题?
6.提到了动态修复替换加载 so ,那你知道怎么修复 class 吗?怎么修复资源呢?
7.还有什么要问的?
六⾯(HR⾯)
1.项⽬
2.薪资
3.反问环节
写在最后
在技术领域内,没有任何⼀门课程可以让你学完后⼀劳永逸,再好的课程也只能是“师傅领进门,修⾏靠个⼈”。“学⽆⽌境”这句话,在任何技术领域,都不只是良好的习惯,更是程序员和⼯程师们不被时代淘汰、获得更好机会和发展的必要前提。
如果你觉得⾃⼰学习效率低,缺乏正确的指导,可以!
加⼊我们吧!内有许多来⾃⼀线的技术⼤⽜,也有在⼩⼚或外包公司奋⽃的码农,我们致⼒打造⼀个平等,⾼质量的Android交流圈⼦,不⼀定能短期就让每个⼈的技术突飞猛进,但从长远来说,眼光,格局,长远发展的⽅向才是最重要的。
35岁中年危机⼤多是因为被短期的利益牵着⾛,过早压榨掉了价值,如果能⼀开始就树⽴⼀个正确的长远的职业规划。35岁后的你只会⽐周围的⼈更值钱。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论