互联网寒冬,一年经验字节跳动、腾讯、美团、快手Android开发面试总结

前言

我20年毕业于一所双非本科院校计算机专业,之前在小米实习和工作了一年,一直都是Android开发。

年中的时候因为个人原因打算离开小米到外面看看,投了很多简历,最终面试了字节跳动、腾讯、美团、快手,忧喜参半,本文对这这次面试做一个总结。

字节跳动

字节是一个同学内推的,也是我很想去的一个公司,整个面试流程下来体验很nice,效率很高,面试官人也很亲切。

  1. 手写代码:计算View树上所有view的数量,参数ViewGroup
  2. 主线程Looper一直循环查消息为何没卡主线程?
  3. RecyclerView相对ListView区别?
  4. Bitmap resize相关,设置option,decode
  5. 用MultiDex解决何事?其根本原因在于?Dex如何优化?主Dex放哪些东西?主Dex和其他Dex调用、关联?Odex优化点在于什么?
  6. Dalvik和Art虚拟机区别?
  7. 多渠道打包如何实现(Flavor、Dimension应用)?从母包生出渠道包实现方法?渠道标识替换原理?
  8. Android打包哪些类型文件不能混淆?
  9. Retrofit主要实现机制?Retrofit的作用、原理
  10. 动态代理静态代理区别?
  11. 模块化怎么做?怎么设计?接口发现暴漏怎么做?基于什么基本思想?
  12. MVC、MVP、MVVM应用和彼此本质区别?
  13. Glide缓存特点
  14. 擅长哪个方向?
  15. 算法题:两个线程分别持续打印奇数和偶数,实现两个线程的交替打印(从小到大)
  16. 模块化、工程化架构思想

腾讯

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

  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个有序链表

领取面试文档>>

最后

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

相关视频推荐

Android(安卓)开发零基础从入门到精通

Android大厂精选高频面试题逐题详解

FrameWork必问:WMS/AMS/Handler/Binder/事件分发机制/屏幕适配/插件化

Android开发中高级进阶实战:实现QQ语言变声/网易云音乐无闪烁动态换肤NDK身份证识别技术

全部评论

相关推荐

07-02 22:46
门头沟学院 Java
码农索隆:hr:“管你投没投,先挂了再说”
点赞 评论 收藏
分享
06-27 12:54
已编辑
门头沟学院 Java
累了,讲讲我的大学经历吧,目前在家待业。我是一个二本院校软件工程专业。最开始选专业是觉得计算机感兴趣,所以选择了他。本人学习计算机是从大二暑假结束开始的,也就是大三开始。当时每天学习,我个人认为Java以及是我生活的一部分了,就这样持续学习了一年半,来到了大四上学期末,大概是在12月中旬,我终于找的到了一家上海中厂的实习,但我发现实习生的工作很枯燥,公司分配的活也不多,大多时间也是自己在自学。就这样我秋招末才找到实习。时间来到了3月中旬,公司说我可以转正,但是转正工资只有7000,不过很稳定,不加班,双休,因为要回学校参加答辩了,同时当时也是心高气傲,认为可以找到更好的,所以放弃了转正机会,回学校准备论文。准备论文期间就也没有投递简历。然后时间来到了5月中旬,这时春招基本也结束了,然后我开始投递简历,期间只是约到了几家下场面试。工资也只有6-7k,到现在我不知道该怎么办了。已经没有当初学习的心劲了,好累呀,但是又不知道该干什么去。在家就是打游戏,boss简历投一投。每天日重一次。26秋招都说是针对26届的人,25怎么办。我好绝望。要不要参加考公、考研、央国企这些的。有没有大佬可以帮帮我。为什么感觉别人找工作都是顺其自然的事情,我感觉自己每一步都在艰难追赶。八股文背了又忘背了又忘,我每次都花很长时间去理解他,可是现在感觉八股、项目都忘完了。真的已经没有力气再去学习了。图片是我的简历,有没有大哥可以指正一下,或者说我应该走哪条路,有点不想在找工作了。
码客明:太累了就休息一下兄弟,人生不会完蛋的
如果实习可以转正,你会不...
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务