本文共 1906 字,大约阅读时间需要 6 分钟。
不清楚你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样的团队却要承担一个软件公司所有的软件开发任务,在软件上线和开发的关键阶段需要团队的成员没日没夜的加班,还需要为测试出的BUG和不能按时提交的软件模块功能而心怀忐忑,有的时候如果你不幸加入现场开发的团队你则需要背井离乡告别你的女友,进行封闭开发,你平时除了编码之外就是吃饭和睡觉(有钱的公司甚至请个保姆为你做饭,以让你节省出更多的时间来投入到工作中,让你一直在那种累了就休息,不累就立即工作的状态)
面试总共花费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以及应用场景 5.JAVA与JS(为什么都喜欢问这个?) 6.其他忘了……也是挺基础的 7.反问 这一轮面试很发散,主要还是针对项目进行讨论,问的问题挺有针对性的(主要是项目)。1.mmap + native 日志优化?
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.还有什么要问的?1.项目
2.薪资 3.反问环节最后,如果大伙有什么好的学习方法或建议欢迎大家在评论中积极留言哈,希望大家能够共同学习、共同努力、共同进步。
小编在这里祝小伙伴们在未来的日子里都可以 升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰!!
不论遇到什么困难,都不应该成为我们放弃的理由!
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,需要一份小编整理出来的学习资料的关注我主页或者~
这里是关于我自己的Android 学习,面试文档,视频收集大整理,有兴趣的伙伴们可以看看~
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。
转载地址:http://fvoti.baihongyu.com/