2019-2020年,我们度过了21世纪10年代的最后一个冬天,趁这个机会,去鹅厂走了一波。
结局有点悲催,但是没多大影响,我还是我,那个在总结学习一线的我。
想看以往学习内容的朋友 可以看我的GitHub
还有收集好的面试题目总结带答案,就放在文末。
废话就不多说,接下来凭借记忆给大家讲讲三面时遇到的问题,关注我收藏文章,你知道如何躲掉这些坑吗?可以在评论区大家一起探讨下。
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.碰到过系统服务内存泄露的问题? 10.你们用的 okhttp ?那你有没有做过一些网络优化呢?比如弱网环境。 11.给你个数 1 吧,比如 1000011 里面有几个 1 ? 12.快排了解不?最坏的情况是怎样?如果有大量重复数据怎么优化?
1.讲讲 handler 的底层实现原理? 2.说说你做的日志记录优化? 3.你看过 binder 驱动的源码,说说他的内存映射过程,说说客户端等待服务端处理返回的流程,如果要跨进4.程传递大内存数据你具体会怎么做?简单写一写吧。 5.在公司做过哪些优化? 6.过程中遇到的一些最难解决的问题? 7.提到了动态修复替换加载 so ,那你知道怎么修复 class 吗?怎么修复资源呢? 8.还有什么要问我的?
要是换几年前我感觉这些面试题估计一个也答不好,但是今天回过头再来看其实感觉也就一般般吧。
大厂的正常面试流程周期一般是一到两个月,就算薪资谈完到 offer 最终审批下来可能都需要一到两周,这段时间心理是比较难熬的,因此建议大家尽量不要裸辞。
面试完毕一般都会透露多久给答复,如果是猎头推的多跟猎头联系,大家要尽量想办法打听到最新的动态。
1. 一般情况下第一轮都是基础面试,需要扎实的基础
2. 第二轮的时候需要了解更深层次的东西
3. 能进入第三轮基本没什么问题,但是要注意以下问题
其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
这里再分享一下我面试期间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)
《Android开发七大模块核心知识笔记》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
以上内容均放在了开源项目:【github】 中已收录,里面包含不同方向的自学Android路线、面试题集合/面经、及系列技术文章等,资源持续更新中...
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。