2021字节跳动、腾讯、美团、快手Android开发面试总结

  1. 用MultiDex解决何事?其根本原因在于?Dex如何优化?主Dex放哪些东西?主Dex和其他Dex调用、关联?Odex优化点在于什么?

  2. Dalvik和Art虚拟机区别?

  3. 多渠道打包如何实现(Flavor、Dimension应用)?从母包生出渠道包实现方法?渠道标识替换原理?

  4. Android打包哪些类型文件不能混淆?

  5. Retrofit主要实现机制?Retrofit的作用、原理

  6. 动态代理静态代理区别?

  7. 模块化怎么做?怎么设计?接口发现暴漏怎么做?基于什么基本思想?

  8. MVC、MVP、MVVM应用和彼此本质区别?

  9. Glide缓存特点

  10. 擅长哪个方向?

  11. 算法题:两个线程分别持续打印奇数和偶数,实现两个线程的交替打印(从小到大)

  12. 模块化、工程化架构思想

腾讯

腾讯是一个哥们帮忙内推的,我也挺想去腾讯的,但没有面过,能记住的内容就这么多了。

  1. GC机制;

  2. RxJava有没有了解;

  3. 内存泄漏怎么排查;

  4. app的页面突然卡了一下,怎么排查?

  5. ANR怎么排查?定义是什么?

  6. 使用过哪些开源库;

  7. 对OKHttp有哪些了解?这个框架设计怎么样?

  8. Databinding有哪些了解?

  9. EventBus了解吗?

  10. 安卓的注解有什么了解?

  11. RelativeLayout和LinearLayout怎么选?为什么?

  12. 自定义Layout主要有那几个流程?

  13. 滑动过程卡顿,刷新率太低,怎么排查?

美团

美团是这几次面试中最顺利的一次了。

  1. tcp中的3次握手。get和post的区别

  2. TCP和UDP的区别,五层协议

  3. 线程和进程的区别,线程状态,同步锁,Java里面应用到同步锁的情景,Android哪里用到了同步锁

  4. 项目中做过哪些优化?简单说下。

  5. List中的ArrayList和LinkedList的区别,hashmap和hashtable的区别,hashmap的底层实现,如何解决hash冲突

  6. 算法,一个三叉树,求深度,求最大节点数

  7. IPC有哪些(Messenger,AIDL,socket),如果让你分类,如何将它们分类,为什么?

  8. Broadcast可以跨进程么?如果可以,是通过什么实现的

  9. 了解Binder么?

  10. 了解Service么?说下bindService和startService的区别?

  11. 项目中的bug,你是如何解决的?

快手

这次面试流程比较长,快手感觉很注重算法,我后来也被HR答复算法需要加强,想去快手的话多刷点题吧。

  1. Android/ 布局优化

  2. Activity启动模式

  3. RecyclerView和ListView区别

  4. Handler机制,loop方法为何不会造成ANR

  5. View绘制流程

  6. SingleTop和standard启动模式下,生命周期回调有何不同

  7. onStart和onResume区别

  8. Java/ 面向对象三大特性

  9. Array和Linked区别

  10. HashMap底层

  11. 进程间通信方式

  12. equals和==区别

  13. 线程间加锁的方式

  14. 设计模式

  15. synchronized的不同使用

  16. 异常

  17. 线程池

  18. 创建线程的方式

  19. OS/ 死锁

  20. 网络/ tcp和udp的区别

  21. 合并k个有序链表

最后


这就是本次面试记录下来的一些内容,从投简历到面试一系列环节中还是可以感受到就业比较难,我自己水平也有很大的提升空间,总之不要随便裸辞,时刻做好技术提升的准备。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值