当前位置:首页 » 《关注互联网》 » 正文

刷到就是赚到!八月阿里 Android 高级岗面经新鲜出炉(年薪百万)_粉丝交流群:1087084956

21 人参与  2021年09月07日 09:03  分类 : 《关注互联网》  评论

点击全文阅读


前段时间,前同事跳槽,机缘巧合下面了阿里,本来凭着试一试的态度,却不料好事成双,拿到了offer,而且薪资也double了。

同事硕士毕业后工作了4年,之前一直都是在二线“奋战”,身为程序员,一直都为同在杭州的一线大厂有一些想法,这次离职后入职阿里,虽不是像淘宝客户端这种核心部门,但是也算成就了他入职大厂的梦想了。

先上热菜,看看面经

阿里某事业部一面

  • Android中的Context了解多少
  • Application里面可以弹窗吗
  • Activity、Window、View三者的关系
  • OkHttp中有哪些设计模式
  • Retrofit中有哪些设计模式
  • Retrofit.create做了哪些工作
  • 自定义一个圆角View
  • 协程launch有哪些参数
  • 说说by关键字
  • 代理和委托的区别
  • 双亲委托模式
  • 有几种获取view宽高的方式
  • view.post为什么可以获取到
  • getWidth和getMesureWidth的区别
  • 手写遍历二叉树
  • 手写双重锁单例
  • 手写插入排序
  • 手写双数组去重并排序
  • 如何判断链表有环

阿里某事业部二面

  • 挑一个项目详细说一下,以及相关技术栈
  • 介绍一下协程机制
  • 说一下Dispatchers,withContext,Scope他们的作用
  • 说一下你理解的MVP,MVVM
  • Flutter相关
  • 性能优化做了哪些工作
  • 编译速度怎么提升的
  • 内存泄露
  • LeakCanary检测原理
  • 热修复,Sophix原理,ClassLoader
  • Apk打包流程
  • 多线程并发,如何保证线程安全
  • synchronized修饰方法和修饰代码块有什么区别

阿里某事业部三面

  • 做的最有成就感的项目是哪个
  • 印象最深刻的项目是哪个
  • LiveData底层实现原理
  • 启动优化
  • 包体积优化
  • 自定义View流程
  • View异步加载
  • 有用过哪些设计模式
  • 介绍一下单例,饿汉式,懒汉式,双重锁
  • 代理模式和装饰模式的区别
  • 策略模式和状态模式的区别
  • 说说观察者模式
  • 有看过哪些三方库的源码
  • Glide四层缓存机制
  • AMS了解多少
三轮都是技术面,第二轮的面试官是同事的老学长,也问的不是特别难,最后也挺顺利的。HR面就没啥东西可聊的,基本上就是对此次面试的一个评价、定薪等等一些之内的话题。

面试前的准备

有些朋友恐惧面试,都说面试造火箭,工作拧螺丝,但是仔细想想,如果在面试中考那种人人都会的面试题,如何才能体现出你的不可替代性?

面试前如何调整心跳(三点)

  • 准备前,可能有些同学看到面试题已经不自信了,感觉自己一半都答不上来,这是正常的,人的记忆是有限的,慢慢复习就好了,放平心态。
  • 面试中,可能有些同学会被问到自闭,其实大可不必,东边不亮西边亮,总有面试官会挖掘出你的亮点。而且面试中除了技术之外,也有很多客观因素,比如面试官的心情、你的状态等等。
  • 面试后,好与坏都坦然接受,及时做好复盘,查漏补缺,才能在下一次面试中有更好的发挥,这也是一个愈战愈勇的过程。

面试前的准备

老生常谈的话又要拿出来讲了,其实无非也就是一下几点
  • 尽量不要迟到,不管是现场还是视频。
  • 如果是现场面试,记得关注当天的天气,提前查一下路线。
  • 如果要修改面试时间,提前一天跟HR沟通。
  • 如果不去,不要直接放鸽子,跟HR说一声。
  • 手机电量保持充足,面前可以临阵磨枪。
  • 面试登记,字尽量写的好认一些,个人作为面试官时,不好认的扣分,字如其人,代码同理。
  • 不要作假,编造一个谎言往往需要更多的谎言去圆它。
  • 大厂一般面试周期较长,注意时间安排。
  • 保持自信,保持自信,保持自信。
  • ......

复习方法

  • 看大V们整理的Android核心知识PDF,先快速过一篇,再重点精读。有些技术面试高频点,可以划重点记笔记,随时可以停下来进入思考状态,也很方便反复阅读,主要是没有干扰。
  • 面试题,包括思路和代码都要好好看一遍,俗话说三人行必有师焉,吸取别人对解题的解决思路并优化,无偿不是提升自己的一种方式;
  • 面试实践,这个很重要,多去试试几家,有参考性的整理遇到的面试题; 纸上得来终觉浅,绝知此事要躬行
这里分享的是美团技术专家首发的一份「Android面试宝典」,从互联网一二线企业收集的Android热门面试知识点,让人看了真的不得不推荐,太完整了!

比如:比如以JVM为例;

  • Java 类加载过程?
  • 描述一下JVM 加载 Class文件的原理机制?
  • Java 内存分配
  • GC 是什么? 为什么要有GC?
  • 如何判断一个对象是否存活?(或者 GC 对象的判定方法)
  • 垃圾回收的优点和原理。并考虑 2 种回收机制
  • 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  • Java 中会存在内存泄漏吗,请简单描述
  • ......

Android面试笔记(组件+View+线程)

以Android四大组件为例
  • 说下Activity的生命周期?
  • onStart()和onResume()/onPause()和onStop()的区别?
  • Activity A启动另一个Activity B会回调哪些方法?如果Activity B是完全透明呢?如果启动的是一个Dialog呢?
  • 谈谈onSaveInstanceState()方法?何时会调用?
  • onSaveInstanceState()与onPause()的区别?
  • 如何避免配置改变时Activity重建?
  • 优先级低的Activity在内存不足被回收后怎样做可以恢复到销毁前状态?
  • 说下Activity的四种启动模式?(有时会出个实际问题来分析返回栈中Activity的情况)
  • 谈谈singleTop和singleTask的区别以及应用场景
  • ......

Android面试笔记(Binder+Handler+Bitmap)

以binder为例
  • Binder的定向制导,如何找到目标Binder,唤起进程或者线程
  • Binder中的红黑树,为什么会有两棵binder_ref红黑树
  • Binder一次拷贝原理
  • Binder线程、Binder主线程、Client请求线程的概念与区别
  • Binder线程的睡眠与唤醒(请求线程睡在哪个等待队列上,唤醒目标端哪个队列上的线程)
  • Binder协议中BC与BR的区别
  • Binder在传输数据的时候是如何层层封装的–不同层次使用的数据结构(命令的封装)
  • Binder驱动传递数据的释放(释放时机)
  • 一个简单的Binder通信C/S模型
  • ......

Android面试笔记(RecyclerView+Webview)

以RecyclerView为例
  • 请说一下RecyclerView?adapter的作用是什么,几个方法是做什么用的?如何理解adapter订阅者模式?
  • RecyclerView绘制原理如何理解?性能优化本质是什么?RecyclerView绘制原理过程大概是怎样的?
  • RecyclerView常见的优化有哪些?实际开发中都是怎么做的,优化前后对比性能上有何提升?
  • 如何解决RecyclerView嵌套RecyclerView条目自动上滚的Bug?如何解决ScrollView嵌套RecyclerView滑动冲突?
  • RecyclerView的Recyler是如何实现ViewHolder的缓存?如何理解RecyclerView三级缓存是如何实现的?
  • RecyclerView源码分析
  • ......

因图文太多影响朋友们的阅读,整理成PDF部分截图已上传,需要完整Android面试笔记的朋友可以在 文末或者文首领取

Android面试笔记(架构篇)

Android面试笔记(Jetpack篇)

Android面试笔记(NDK开发篇)

对于程序员来说,要学习的知识内容、技术有太多太多难点,要想不被面试淘汰就 只能提前做好复习规划、认真刷题,在学习中不断提升自己,请记住,从来都是 只是我们去适应环境,而不是环境来适应我们!


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/27199.html

面试  线程  模式  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1