美文网首页
Android面经,一个非科班应届生的逆袭之路

Android面经,一个非科班应届生的逆袭之路

作者: 尼古拉斯小韭菜 | 来源:发表于2022-06-08 10:54 被阅读0次

    博主已工作五年,本文将转载一篇博主五年前校招季写过的一篇ANdroid面经的文章,旨在开启博主的工作经验与Android面经的分享之旅。博主先后就职于百度,网易,新浪微博,希望能将自己的一些经验分享给小伙伴们,与小伙伴们一起共同成长。

    以下是当年发表与牛客网的正文,手动分割

    作者:皮卡狐
    链接:https://www.nowcoder.com/discuss/14852
    来源:牛客网

    转眼间2017届校招已经逐渐走过***步入尾声,本人并没有任何写面经博客的习惯,不过之前看过的面经给予了我极大的帮助
    所以本文只是介绍下本人面试过程中的一些经历,希望也能帮到学弟学妹。 付两位给我帮助最大的两篇大神面经:
    http://www.nowcoder.com/discuss/3043?type=2&order=0&pos=5&page=2
    http://www.nowcoder.com/discuss/3066
    本人东北某学校通信工程专业硕士,本科非211 985菜鸟,没有实习经历,专业不对口,研究方向并非互联网,校招面了百度、腾讯、网易、360、 去哪网、CVTE。校招面过的这些公司除了CVTE由于之前已经拿了网易 360 去哪网 到 HR面我为了百度腾讯攒人品主动放弃了广州的offer外,其他公司都拿到了校招移动软件研发(Android)岗位的offer。

    本人很愚笨,坚持梦想才是最重要的,最后你会得到应有的回报。 之前面经中的大神说道“重要的事情说三遍,心态最重要,心态最重要,心态最重要”。
    在这里我就不谈心态了,说说硬件,同样重要的事情说三遍
    基础最重要。
    基础最重要。
    基础最重要。
    当你的基础知识好到让面试官怎么都问不倒的时候,那你离offer就很近了。 本人找实习比较晚,因此过了实习招聘的热潮,且本人坚持做移动端开发,几次大型公司的测试、Java岗实习机会都放弃了,所以最终并未找到 实习,这里我想说,实习非常重要能去就去实习,但是实习并非你offer收割路上的拦路虎。如果不是自己想去的岗位,那你大可把实习的时间用来 自己做点项目,巩固基础知识,刷刷面经,效果也不会太差。我暑期主要做的事情就是写写APP(之前也上线过几款APP),因为我是通信的,又恶补了 计算机操作系统,计算机网络,当然刷leetcode、剑指offer(很重要)也是不可避免的。
    好了,铺垫已经做好了,由于前两个链接的大神面经已经总结了各学科知识点,我这里就不再总结,直接上面试干货了。

    网易:
    1面:
    自我介绍 项目介绍
    如何解决ListView整个Item点击和Item中某个按钮的点击
    HashMap底层原理
    点击一个网址底层经历哪些过程
    进程通信机制
    Java同步方法有哪些
    会写后端么 会数据库么
    最后问了下我做开发的优势是什么
    网易面试阵势挺大,从小工程师到大boss都上了,我周围的人一面都是小工程师,一会儿就结束了,结果我九点多的场一直等到中午十一点半, 当时有点着急,我旁边女生二面都面完了,不过事实证明面的很快挂的也很快,等我一面进去一看,是一个40岁左右的男的,应该架构师以上 了吧,我说怎么面的那么慢的,导致我快中午才一面上,不过到我了应该快吃饭了,所以半个小时就结束了,出来直接出结果了,过了。然后去 网易食堂吃饭,网易的食堂是真不错!
    2面:
    项目介绍:
    音乐播放器:
    网络的还是本地的
    AIDL机制,
    属性动画
    为什么用广播通信
    不同Item复用问题

    新闻客户端:
    后端是自己写的么
    实际应用:图片轮播怎么实现无限循环

    手机浏览器
    自定义控件实现方法都有哪些
    怎么去设定一个自定义控件的大小
    从onmesure 测量模式说。
    怎么在XML文件中设定自定义文件属性,并获取

    图像处理APP
    异步并发图片加载框架介绍
    JNI图像处理过程介绍
    自定义滤镜介绍
    我正好是图像处理专业的,说了说这方面优势,面试官说正好跟你专业对上了哈,完事。
    介绍自己通信的项目(自己的实际项目很重要)
    问问细节 开始问基础:
    Android横竖屏切换生命周期 (网上的不够全面,记住不同版本生命周期其实是不同的)
    不重新绘制时候执行哪个生命周期
    Android四种启动模式
    String StringBuffer StringBuilder区别
    Android内存优化方法
    Android布局优化方法
    二面结束马上就让我HR面了,HR面我就不说了,不过有个小插曲,HR直接挑我本科学校,不过还好我二面表现的很好,面试官对我很满意 网易offer是三个面试官一起决定去留的,所以面你的人厉害,问你的问题难并不一定是坏处,相对应的他们说话也有权威。我这应该也是二面 替我说了很多话。多余的我就不说了,因为网易是我第一个参加面对面面试的公司,面试前一天晚上很紧张,觉得自己未必能够得上网易。 最终网易的顺利通过给我校招之路的一帆风顺埋下了伏笔。这绝非一个offer那么简单,最重要的是自信心的提升,谢谢网易,谢谢网易面试 官对我的肯定。

    去哪网:
    一面:
    Java虚拟机内存模型
    Java堆结构
    Java新生代老年代分配比例
    Java各个代中对象死活判断
    进程通信机制
    Java线程同步机制 HashMap和conrrentHashmap区别
    分段锁如何实现,用的是syn关键字还是lock(),为什么
    TCP链接过程
    怎么检测TCP数据是否丢包,自己设计算法
    大数据找出前十问题:
    两种方案,分组归并或者一个一个输入构建最大堆
    介绍发明专利内容
    介绍最重要的项目内容
    给我安排做Java行不行 用过的设计模式,怎么用得 Java中的***模式怎么实现(说了下Android中的)
    Java的开源框架,
    J2EE的框架,没看过,看过Android的 说下Android的框架,及在其中学到了什么
    多线程异步断点续传框架原理
    利用该原理在图片加载框架中的应用
    做过的网站介绍
    看了下我的网站
    用到的技术
    团队介绍
    成员间的任务分配

    性格测试:(本来是HR的活,结果一面全接了,目的就是一面刷人,面了70分钟)
    愿不愿意分享 比如开设论坛啊什么的,分享下自己喜欢的东西,组织一些人做些自己喜欢的东西
    团队中遇到矛盾怎么解决
    这样解决不来,再极端下怎么办
    这样解决不来,再极端下怎么办
    这样解决不来,再极端下怎么办
    问了三个再极端,最后把自己问笑了 就是逼你,看你反应能力
    公司利益与自我利益冲突怎么权衡
    用户利益和项目组利益哪个更重要,涉及到Boss
    短期项目组,长期用户,谁能载舟亦能覆舟的道理
    各种技术的都会的全面手跟一个方面比较精通的人两种人的利弊分析 更想成为什么样的人
    职业规划

    二面:
    自我介绍 项目介绍
    项目细节提问
    项目中用到的算法
    设计模式在项目中怎么用的
    设计模式问的比较多,
    结合我写的框架都详细介绍了下
    单例模式两重检验中一个因JVM优化引起的问题,太细节了
    进程通信
    Java线程同步机制有哪些
    让我做Java行不行
    移动端的没来,跟我道歉 看了下我做的Android应用,
    让我说了说自己的并发框架
    用了下我做的手机浏览器 说看我做的东西应该没问题,但是自己不是做移动端的不敢随便问
    跟我说了说他们去哪网最开始手机端的架构是H5的 这中间都遇到了什么问题 最后又换成Android原生的, 问了下我知不知道现在有一种在线修改已经上传的应用代码的机制 不知道,说了下自己的理解,二面完事,让我在哪个屋子里等下轮
    HR面:
    家住哪
    家庭成员工作
    要不要自己回老家
    有没有女朋友 处了多久
    将来怎么安排
    期望工资多少
    我说我拿下网易跟360了 然后在就没问我,一直在他说,说福利方面的 最后给意向offer,送我了去哪吉祥物。

    360:

    一面:
    做过的安卓应用和技术难点
    如何在一个在A线程运行一半启动B线程,等B线程运行完在返回执行A线程
    如何列出一个文件夹下所有文件,以及所有子文件夹下所有文件。写算法。
    线程与service
    什么是虚拟内存及其实现方式
    onNewIntent方法
    java类加载机制
    java堆和站区别
    如何判断站中的变量死没死
    java站的主要作用
    java多线程同步机制
    java内存回收跟c内存回收有什么区别
    虚拟机回收机制 虚拟机回收算法
    linux进程通信方式有什么
    安卓进程通信机制,及底层原理
    多线程断点续传原理,
    大文件下载oom问题,
    多线程断点续传怎么在重启应用时继续任务。
    有的线程下载完了有的没有怎么办
    数据库多任务处理
    数组跟链表区别
    数组跟链表排序时区别
    队列与堆栈区别

    二面: 介绍项目 (如果你不是计算机专业,记住自己搞一个自己方向的牛逼的项目也是很重要的,这将是你面试应激发挥的本钱,不管什么东西都可以往自己 项目上扯,很管用)
    项目细节,
    戝细,包括输入输出是什么,
    每个算法图片判断的时间多少,
    总共时间会不会超时
    都用了什么算法
    每个算法是做什么的
    项目得到什么利益
    如何进行输入图像获取
    项目遇到最大的困难是什么,怎么解决,从中得到了什么。

    兴趣爱好
    最后他说得考点啥,考个算法觉得老套,想了半天说帮他分析个问题
    怎么统计出一个字符串所有重复字符的重复次数及第一次出现的位置。使时间复杂度最小,最小这个是关键,重点看你思维,不是结果。

    腾讯:
    1面:
    年级35岁左右,貌似技术经理以上级别, 一共面试了大概一个小时左右
    项目介绍,说了下上线的几个应用
    说了下自己的异步图片加载框架,
    并发图像滤镜框架。
    说了下自己的做的机器学习项目
    问题基本是在讲Android项目过程中随机根据项目问题,实在记不清问的啥了。

    2面:
    介绍项目,首先机器学习项目 四个Android应用,
    然后写个快排 完事了,问我有什么想问的?
    我以为我挂了,问了下完事了?
    问了下入职前怎么学习,面试官说我学习能力挺强的,按照自己的想法来 问了下下一轮时间,面试官问我是不是着急,那我现在给你安排,然后我就知道自己过了,等了20分钟吧,

    HR面
    3面:
    腾讯前两面问的问题有点记不清了,对HR面印象比较深刻,HR面大概70分钟
    HR几乎扒开了我生活学习成长中的任何一个角落,给我留下了极其深刻的印象。
    自我介绍
    家庭条件
    最悲伤的事
    最有成就感的事
    成就感来源于做成了这个网站,还是把这个网站运营得多好 网站点击量多少
    为什么选择加入腾讯 每个问题都会问到底然后她给你个答案,例如那你得成就感是仅仅来源于建成这个网站喽, 你回答是或者不是
    遇到的最大的困难,如何解决
    对腾讯有什么了解,
    有什么期待
    来腾讯之后有什么期待
    地点期望北京,对深圳怎么看
    让你去做一款新的应用愿意么
    出去工作家里怎么看 本科学校咋样,
    怎么看待从一般得学校考到好一点的学校 都喜欢看什么课外书,或者公众号,给她推荐一个,讲讲这个公众号的好处
    将来能做产品经理么,是否有这个能力
    如果将来技术做到不太好前进的地步考虑换岗位么
    都拿了什么offer 说说别的公司那边有什么诱惑,看看腾讯有没有 大概就是这样,
    当然还有很多问题都是渗透在这些问题内部的,整整七十分钟。

    百度:
    1面:
    介绍了下自己专业的项目还有四个Android项目
    介绍了下自己写的框架
    项目为什么夸进程通信
    Java四种引用 Activity启动模式
    Activity生命周期
    自定义控件多少种方式
    TCP、UDP区别
    点击一个网址走什么协议
    语音识别接口,
    HTTP请求接口怎么做的 JSON 解析空字段处理
    WebView JS交互
    Java多线程方式 Java同步方式
    一面一共面了50分钟,问了一些问题,但是基本都答得很流畅, 因为没有太大难度所以问题都记不清了, 最后问了下拿了什么offer 写了个冒泡,完事。 1面面试官跟最后3面面试官都是教育部的 走之前站起来跟我握手,说尽快给我安排下一轮,面试官素质极高,印象深刻。

    2面:
    2面整体问的比较难,并且每个问题都问的很细,但是体验非常棒
    依旧是介绍项目
    Java同步方式,最常用哪种同步方式
    Java四种引用,以及怎么在项目中应用
    Activity生命周期 一个页面跳另一个页面的生命周期,页面重启生命周期 A掉B页面,此时掉用A.finish A页面会立刻清除么?
    如何优化布局
    如何加快页面启动速度,除了常规方法还有什么(预加载)。
    ANR知道么
    OOM都有什么情况
    静态变量OOM如何解释
    ApplicationContext怎么避免OOM,经常用么
    弹出一个对话框用Activity Context还是ApplicationContext 两种方式会造成内存泄漏么
    都怎么异步执行,更新UI,
    三种方法各自优缺点 什么时候用服务
    自己开线程去处理跟线程池处理有什么区别
    一个类中两个同步方法 func1 func2, 线程1进入之后fun1后,线程2还能进func2么 这时候线程1调用 wait线程2能进func2么
    进程通信方法
    网络请求都用什么方法 用过什么框架,看过源码么,
    用没用过网络请求框架 try catch finally 一段代码注释掉一部分看输出结果,
    加上一部分看输出结果
    其实就是一个 try中的return 在finally前还是后执行的问题, catch中的return在什么时候执行,是只填充结果还是直接返回
    页面绘制最耗时的方法是什么
    View绘制流程
    View事件传递流程
    为什么Android手机运行久了,内存小了会变慢,
    想过什么原因么 越内存小越不能掉GC方法
    JVM垃圾回收机制
    地图路径压缩方式,怎么把10000个点压缩到10个或者100个,使线路形状不变 因为面试官是百度地图的,所以问了这个问题,我说了两种思路,但是他说有更简单的让我回来查一下
    最后写了个二分查找
    让我问问题,问了个入职后部门分配的问题
    时间有点长,有些问题记不清了,二面70分钟,面完了直接告诉我通过了,在这别走等下轮

    三面:
    百度三轮技术面,因为我面试一直排在前面,所以三面在两天后,也就是三面面试官来的第一天早上九 。我刚到酒店一楼,没等前台叫,8点45面试官直接给我打电话问我在哪呢,然后直接叫我上去了,给前台整蒙了, 然后我告诉了下前台就上去面试了。

    介绍自己常用的应用的整体架构 说了下自己的应用,说完了面试官什么都没问。
    说下最近主要在做什么,有什么体会。
    讲了下自己的专业项目
    后面的问题比较大
    怎么看待中国互联网在世界的地位,中国互联网应该承担怎样的责任,后续该如何发展
    自己最近看什么书,看什么跟技术无关的书, 平时看的非技术的书比较少,我给扯到自己热爱的宇宙学上了,分析了下自己如何看待宇宙暗物质的,自己的新观点 (高维空间解释暗物质的存在)。因为来了挺多天没带换洗衣服,在哈尔滨现买了件,这衣服里面有绒很暖和,结果面试时候被坑了, 贼热,一顿出汗,其实我并没有紧张,面试官让我等等,去给我拿纸巾去了。
    遇到最大的困难是什么,怎么解决的,如果在公司遇到这种困难怎么办
    现在来了一个新的知识该怎么去学习,比如是人工智能。
    来百度之后对百度的期望是什么?
    我说我想做一款比较火的应用 面试官说不能选部门,以为人才每个部门都想抢,那就打起来了,干一年后可以自己随意选 他是教育部的,大的应用框架都打好了,这种小应用反而能锻炼人,
    然后让我问问题
    我问了下部门,问了下入职培训 最后问一个不该问的问题,我能不能过,因为别的公司等签约 面试官说,本来他是应该问技术的,但是前两面已经对你评价很高了,所以我一个技术问题没问 你大可不必担心,其实现在跟选秀一样,我们能做的都已经做完了,剩下的就是权力反转的时候了 然后HR会联系你,看看工资部门满不满意,看看你是不是接受。 这时候我已经知道自己过了,开开心心坐车回学校了。 至此校招结束。

    CVTE:
    百度腾讯面试前其实中间还拿下了CVTE,不过最后因为是广州的肯定不能去就没要这个offer,问的问题其实也都是基础, 不过问的还是蛮深入的,跟百度腾讯的难度也差不多。不过CVTE接offer之后可以去广州公司参观一个星期,报销费用, 所以拿了这个offer其实蛮好的,可惜是在HR面试马上结束了才说的,哈哈。

    总结:还是那句话,基础最重要。 实习跟专业固然重要,然后最重要的还是基础牢固,并且思维要灵活,面试官喜欢观察你的反应能力。 记住面试官很忙,他们基本不会跟你唠闲嗑,除非你很厉害没啥可问的了,所以回答问题之前一定要分析问题背后他们想了解你什么。 如果面试官就是问的很模糊,分析不透,大可直接问面试官你想知道什么,这是没有问题的。 最后祝大家都能找到满意的工作。

    相关文章

      网友评论

          本文标题:Android面经,一个非科班应届生的逆袭之路

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