美文网首页2020Android面试Android开发经验谈
2020资本寒冬下 Android面试者,大厂必凉面经(为春招准

2020资本寒冬下 Android面试者,大厂必凉面经(为春招准

作者: 程序员面试秘籍 | 来源:发表于2020-12-16 22:26 被阅读0次

    我的惨痛经历

    在2019年10月初,公司倒闭,无奈走上找工作的道路,不想自己平时图安逸,不思进取,再次找工作才发现,android行业也不是站在风口上,猪也能吹上天的世道了.作为技术小菜的我,再找工作那几个月真是战战兢兢,被打击得信心全无.记录下我的面试经历,分享给需要的人.勉励自己要时时进步,才不会被淘汰.

    经验分享

    后来的我面了很多公司,最终拿下了知乎、网易和快手的offer,最后选择了知乎。有人可能会问为什么不选择快手?的确快手的工资很高,福利待遇也很好。不过我觉得目前我还是应该更以技术成长为主。

    在与知乎的面试官交流时,发现他们的技术相对来说更新颖一些,包括Kotlin、Flutter和Jetpack,都有一些实践,也都是我想学习的东西,这边的业务也更感兴趣一些。

    另外,在谈offer时也被他们满满的诚意打动了。还有,建议大家工作未满3年时还是更以技术成长为主,不要把薪资放在首位。


    面试准备(新手注意避坑)

    1. 简历

    简历不用准备得太花哨,以前我总喜欢找一些漂亮的模板,后来经人指点后改成了用Markdown书写。面试官不在意你的简历有多好看,他更在意的是你的简历内容。

    2. 面试

    写完简历就可以投递了,一般可以找朋友内推或拉钩网、Boss直聘直接投递,这样比较快一些。
    2.1 技术面试

    技术面试一般会先做个自我介绍,然后问问你做的项目,考察一下基础,之后再写个算法,最后可能问问你有什么想问的么。

    • 2.1.1 自我介绍

    自我介绍一般主要说一下你在哪就职,目前的工作情况,工作经验有多久,都做过哪些东西,尤其要突出一下你的亮点。这个大家提前准备一下就好。

    • 2.1.2 项目经历

    自我介绍完之后,面试官就会看你的工作经历,挑一些问你,或者直接让你介绍做过的最好的东西。

    大家写到工作经历的东西,负责的部分一定要特别熟,经得起面试官的拷问,如果只是参与的,也要尽量弄熟,否则就不要往上写。

    每个人的经历不同,做过的东西都不一样,所以我就不给大家整理了。
    一般的面试安排都是3轮技术面和1轮HR面,部分公司可能会有增减。

    • 2.1.3 基础

    问完项目,就该考察考察候选人的基础了,一般包括Android基础、Java基础、Android常用的开源框架、设计模式和网络基础等等。
    [图片上传中...(image.png-cbf285-1608106699619-0)]

    面试篇

    饿了么(无笔试)

    • 设计的六大原则
    • 如果hashmap key不一样,但是hashcode一样会怎么样?
    • okhttp有什么优秀的设计模式?builder模式有什么好处?责任链模式有什么好处?
    • 懒汉模式单例为什么加volaitle?
    • hashmap是否线程安全?不安全会出什么问题?
    • concurrenthashmap读写分别是啥情况?
    • bindservice和startservice生命周期有啥不同?
    • 广播有几种?广播是观察者模式?跨进城广播也是观察者模式吗?
    • ams是怎么找到启动的那个activity的?
    • a-b-c界面,其中b是singleinstance的,那么c界面点back返回a界面,为什么?怎么管理栈的?
    • 红黑树有啥特性?
    • 在oncreate里面可以得到view的宽高吗?
    • view的getwidth和getmesurewidth有啥区别?
    • 遍历hashmap的原理?
    • 23种设计模式

    知乎

    知乎面试前hr会事先跟你电话确定面试时间,然后把你的Skype账号给hr,到时候面试官会加你好友,然后开始面试。知乎的招聘信息在这里

    一面:

    • 自我介绍
    • 介绍一下自己做过什么项目ps:这里会根据项目问一些问题
    • 跨线程通信 主要涉及LooperMessageHandler以及MessageQueue
    • 说一下自定义View需要注意哪些细节 主要说了一下View绘制的三大过程onDraw()不要做耗时操作 不要创建新对象 以及 怎么处理View的触摸事件
    • View的事件冲突的解决办法 ps:重写dispatchEvent()或者touch()方法
    • 手写代码:给你一个无限大的数(用字符串表示),计算这个数加一以后的结果 手写代码在这个网站进行 ps:面试官发给你一个链接 你写代码面试官会同步看到

    二面

    • 手写代码 两个有序链表合并成一个有序链表
    • Object中有哪些公有方法 ps:clone();toString();wait();notify();getClass();finalize();equals();hashCode();
    • 讲一下listView的优化方法
    • 讲一下RecycleView与listview的区别
    • view的绘制过程

    阿里

    • 问了一下大体情况 比如什么时候可以实习啊 考不考研啊
    • 都会什么算法 讲一下
    • 做过什么项目没有 讲一下项目优化的地方
    • Activity的启动模式
    • 跨线程通信
    • 夸进程通信 主要是Android的AIDL
    • 如何解析json数据和xml

    蘑菇街

    • 说说做了什么项目
    • 自定义view的几个步骤 怎么刷新view ps:onLayout(); onMeasrue();onDraw();
    • RecycleView的优化
    • 几种context的区别
    • 看过什么源码没有
    • 讲一下binder类
    • Runnable运行在哪个线程里面 ps:开启一个子线程的唯一方法就是new Thread().start();
    • HashMap和HashTable的区别
    • raw和assets文件夹的区别
    • activity关闭后尚未运行完毕的thread会怎么样 ps:会变成空进程线程,优先级最低 很容易被终止回收
    • mainfest文件的合并规则

    网易

    网易内推后笔试,过了笔试后去杭州面试 ps:报销来回车费 报销上限是600元 这个回来没记 可能不全

    一面:

    • 自我介绍
    • 跨线程通信
    • 讲了其中一个项目是怎么实现的 问jsoup怎么拼 = =
    • 用过哪些开源库 讲一下他的架构是怎样的
    • java的四种引用 虚引用的作用
    • 图片三级缓存 内存缓存满了怎么办 ps:优先级队列 满了后根据优先级主动删除一部分图片 根据LRU算法确定优先级
    • 讲一下JNI开发的过程 java怎么找到c函数
    • 平时有什么爱好没有 = = ps:潜泳 可以潜好几天 然后自己浮上来

    二面:

    • activity的四中启动模式
    • service的生命周期
    • 讲一下自己的项目
    • 什么是OAuth协议 做什么的
    • 其他的记不清楚了

    hr面:

    • 什么时候可以来实习 实习多久
    • 多个offer怎么选
    • 你有团队开发经验 内部冲突怎么解决
    • 你觉得杭州怎么样
    • 为什么选择网易
    • 用过网易什么产品 ps:吃过网易猪肉
    • 其他忘记 好像聊了好久 得一个小时吧

    字节跳动(无笔试)

    • dvm和art的区别
    • 从framework的角度讲activity的启动流程(冷启动)
    • 手写算法,二维数组,每一行,每一列都是升序,找出某数的下标,没有输出[-1,-1],最好的时间复杂度是m+n(行数+列数)
    • zxing二维码开源框架流程
    • contentprovider怎么升级维护?
    • constaintlayout
    • bitmap有几种格式,分别占多少字节

    滴滴出行(无笔试)

    • android事件分发机制,如何下发,如何上传?
    • 一个界面下拉刷新要怎么实现?
    • bitmap占用内存多少怎么计算?一个像素占几个字节?
    • threadlocal的原理?
    • framework加载activity的流程
    • arraylist和linkedlist的应用场景
    • 网络请求相关的框架
    • 好几万条短信,滑动卡顿怎么解决?
    • 有没有了解过三方开源数据库(好像是腾讯的什么数据库框架,不仅仅是懂sqlite)
    • 避免内存泄漏,为什么说handler用成员内部类会内存泄漏?activity不是已经到gcroot被切断了吗?还有静态context持有activity的引用会内存泄漏,必须要持有怎么办?(及时释放)
    • 计算viewgroup的层级,递归实现和非递归实现
    • 自己写一个应用,包名就叫android行不行,为什么?
    • 主线程looper如果没有消息,就会阻塞在那,为什么不回anr?
    • 系统进程可以用webview吗?
    • 原子类的了解一个app多进程的好处
    • 一个arraylist,里面全部是int,讲所有值是2的整数的节点删除
    • arraymap了解
    • binder机制
    • shareprefrence原理?是否线程安全和进程安全?
    • 一个app启动页另开一个进程,启动页10s后启动mainactivity,请问5s的时候有几个进程?
    • java内存结构,内存模型

    京东

    • arraylist里面可以不可以new一个t泛型的数组?
    • 补间动画click事件还在原位怎么解决?
    • 多线程并发
    • 隔代数据库升级
    • 性能优化

    文章不易,如果大家喜欢这篇文章,或者对你有帮助希望大家多多点赞,转发,关注哦。文章会持续更新的。绝对干货!!!


    大厂面筋资源分享(需要的领取不需要的跳过就好)

    387+755+791=1953页的3份高质量《大厂面试宝典》合集
    面试前准备(387页PDF)

    Android大厂面试题集2020版(包含答案整理)第一部分(755页PDF)

    Android大厂面试题集2020版(包含答案整理)第二部分(791页PDF)

    相关文章

      网友评论

        本文标题:2020资本寒冬下 Android面试者,大厂必凉面经(为春招准

        本文链接:https://www.haomeiwen.com/subject/zleggktx.html