Android 一线大厂面试总结
最近因为团队项目被边缘化,新项目接连流产,已经可以上市的项目突然宣布不做了,又加上外包岗的离职,作为正岗也有被裁员的风险,于是出去看了一下机会。面试了阿里巴巴,百度,头条,趣头条,小米,爱奇艺,映客,快手等一线的大厂,最终拿到了满意的offer。下面将面经分享出来。
想看更多东西详情请看主页
面试前的准备
下面我将从以下几个方面来分享一下面试前的准备。
一.给自己定位
首先要给自己定位,自己现在是一个什么阶段,是初级岗,中高级,高级,还是专家级。一般情况下刚参加工作一年左右时初级,两年左右努力提升自己的话是中级,三到五年高级甚至专家级。前提是不停的钻研。
1.知识的梳理
因为把自己定位为高级开发工程师,俗话说:面试修航母,工作螺丝钉。面试考虑各个方面,对于安卓来说,主要有以下几个方面来准备:Java基础,Android基础,Java并发,Java虚拟机,Android源码(包括framework和开源的项目),数据结构和算法。当然基础知识梳理完毕之后,还要去阅读一些面试经,看看最新各个厂商问的问题。其实以上这些东西准备完,基础好的话,一个月左右,基础不好的话至少要3个月吧。
俗话说不打无准备之仗,只有准备好了才能在面试过程中取得好的结果。
2.简历的准备
简历是一个敲门砖,HR每天会有很多简历收到。简历如何让人眼前一亮,并且能一眼抓住关键信息:个人基本信息(姓名,电话,邮箱,毕业院校等),工作经理,技能点,一些亮点(比如六级证书,获奖等)。简历要简洁,层次分明。写完简历要在招聘网站上更新一下自己的简历。
3.面试机会的各个渠道
这次面试一共通过了3种渠道,一是朋友内推,二是猎头帮忙,三是通过boss或拉钩网投递。
朋友内推:在圈内首先要认识一些好友,各个厂商的员工,可以通过脉脉加好友,也可以通过技术交流加好友,了解好友的动态,让他们帮忙推荐。当然找内推也有两种方式。第一种是让朋友推荐岗位,让他帮忙问问组内是否缺人。第二种通过自己去找,一般情况下公司招聘会在官网上显示加入我们链接,这里可以看到岗位信息。推荐第二种,你自己找到岗位,发给朋友,让他直接帮忙推荐这个岗位。推荐一般会有奖金的。
猎头帮忙:最近听了一个得到的课程“如何有效的提升职场竞争力”,我觉得老师讲的一句话特别好,不要排斥猎头,把猎头当做你的合作伙伴。猎头比你更了解推荐的公司,以及当前的行情。找猎头的方式也有很多,第一个是问问你的朋友有没有合作过的靠谱猎头,第二是像智联招聘,猎聘,boss直聘上有很多的猎头。你更新简历之后,会有猎头给你联系。
招聘网站:互联网招聘就是在拉钩,boss,智联上了。简历更新到网站上,然后就可以投递了,这里要看到简历投递是否有效果,如果半天没有人查看你的简历,那么说明你的简历有问题,及时的修改再投递。
4.面试过程中
面试中分为以下三个方面分享:面试,谈offer,面试后记录总结
二.面试
面试首先不要迟到,着装得体,带好笔和纸,因为是面试也是自己白板能力的一个体现,还有写一些算法以及流程图等。面试前先了解企业信息,有些不合适的公司就不要去面试了,提前安装对方的产品,体验一下。面试过程中一般会让先做自我介绍,要分阶段有条理的介绍。一般会问你在上一家公司最有成就的事情,遇到的最大的技术难点等。面试过程中不会的可以说自己不了解,也可以反问一下面试官,有的面试官会给你讲解一下,它还表现出你比较好学。
1.谈offer
offer到了之后,首先还是定位,你未来几年的发展方向:技术提升,管理能力提升还是什么。一般大厂会有评级,问清楚评级,福利待遇。谈工资的技巧:1. 内推的话,问问内推的朋友。2. 猎头推荐:让猎头帮忙谈。3. 自己投的简历,一般拉钩和boss直聘上有明码标价。一般来说涨30%~40%是合理范围。
2.面试后
面试后及时总结,有可能下一个面试官会问你同样的问题。我就遇到了好几个一样的问题。
3.面试题分享
下面分享一些一线厂商的面试题:
finnal的理解
静态方法锁和类锁的区别
loop.loop()为何没有造成死循环
程序计数器的功能
Java的内存模型
指令重排序的解释,多线程
多线程并发
synchronized和lock,reEntranceLock区别
线程的几种状态
MediaPlayer的生命周期
静态代理和动态代理
多线程并发的集合框架
Java集合的数据类型
用栈实现一个队列
一共有n个苹果,一天吃一个苹果,一天吃两个苹果,一共有多少种吃法
回文打印出二维数组
两个线程交替打印
回文输出一个二叉树
股票最优问题
子View扩选问题
View的绘制
Activity的生命周期
Activity1启动:
MainActivity.onCreate.
MainActivity.onStart.
MainActivity.onResume.
点击button Activity2启动:
MainActivity.onPause.
Main2Activity.onCreate.
Main2Activity.onStart.
Main2Activity.onResume.
MainActivity.onStop.
点击返回键,Activity2从任务栈中移除:
MainActivity.onPause.
MainActivity.onRestart.
MainActivity.onStart.
MainActivity.onResume.
Main2Activity.onStop.
Main2Activity.onDestroy.
Activity1点击返回键:
MainActivity.onPause.
MainActivity.onStop.
MainActivity.onDestroy.
MVP类图
什么时候复写hashCode和equl方法
想看更多东西详情请看主页
写在最后
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家