一年安卓经验,美团作业盒子阿里面经

这里我仅仅记录一些问过的题目(能记住的)

作业盒子

毕竟1年多没有面试了,第一场面试还是给我了很大的自信,也知道现在自己大概能要多少工资是合适的,所以大佬们准备跳槽的时候,最好先面几家小公司

一面

1. Android一些优化方案
2. 什么是过渡绘制,如何防止过渡绘制
2. 事件分发机制
3. ListView的优化
4. Binder机制
5. 在多进程中,Application会启动几次
6. 单例模式,双锁原理,volatile原理,静态内部类实现单例的原理

二面

二面面试官是leader?反正应该不是做Android的,Android的相关知识问的也不多,大多是项目上的东西。
1. Java多线程,synchronized
2. 聊项目
3. Binder机制

三面

应该是leader吧,主要了解一些个人的情况,以及一些项目,最后问了期望的薪资,然后当场就给了offer。

快手

一面

面试官是从小米核心部门过来的Android小组的领导。
1. 问了关于数据库的一些问题,SQLite的相关操作
2. 网络相关的问题,网络的五层模型,又问了TCP和UDP,还有Android相关的长连接
3. Handler机制
4. Acticity的生命周期以及四种启动模式,各自特点
5. Service的两种启动模式生命周期,如果同时使用两种启动模式是否可以
6. 顺势讲到Binder,什么时候可以得到控件的大小
7. 最后写了一道链表反转的算法题

二面

1. 问了项目相关的问题,这部分根据自己的项目经验
2. 设定一个场景,怎么去实现相应的功能,如何实现微信的联系人页面(包括与服务端有什么样的交互)
3. 最后也是一个算法,写出所有数组的子序列

HR面

HR上来很亲切,问了我一些面试的情况,难不难之类的,然后又聊了聊我大学和研究生情况,大概了解我后,只跟我聊我的不足,以此来压低我期望的薪水。

美团外卖

一面

1. volley的源代码,在图片缓存部分讨论了挺长时间,http中缓存机制,Last-Modify的作用等
2. fragment的生命周期
3. service一些知识
***分发机制
5. Binder实现机制,Stub类中asInterface函数作用,BnBinder和BpBinder区别。
6. gradle中buildToolsVersion和TargetSdkVersion的区别是什么
7. 手机适配一些方案
8. hashmap的实现原理
9. 静态方法是否能被重写

二面

1. 3次握手和4次挥手的原因,以及为什么需要这样做
2. 数据结构,搜索二叉树的一些特性,平衡二叉树
3. hashmap是如何解决hash冲突的
4. 进程与线程区别
5. 写了一个二分查找和单例模式
6. http中的同步和异步
7. 聊了一些项目上做的东西,问了问职业规划
二面面试官不是做Android,本来面试我的人临时开会去了,所以这一轮面试没怎么问android相关知识。

三面

1. 我认为Android做的优秀的几个地方,然后又根据我说的问了问比较深入问题
2. Android是如何进行资源管理的
3. java比较重要的几个特性
4. 网络五层结构,每一层协议,由于我网络不是很好,还问了一些其他的问题(例如MAC地址和ip地址的区别等)
5. 为什么离开原来公司,以及职业规划

美团技术还是很厉害的,从面试官的水平就可以看出来,尤其是外卖核心部门,办公环境是不错,但是感觉就是有点乱。

阿里

我投递的是杭州的天猫,是做虚拟现实的小组

一面

1. 询问了我博客上写的一些东西,从项目立意谈起,到设计,再到详细的技术实现,由于自己写的博客还是比较熟悉,回答的还不错
2. GLSurfaceView的相关知识,OpenGL,Shader,绘制流程
3. 当前做的项目,以及到具体的实现和优化
4. 多进程间的通讯,Binder机制
5. 询问看过哪些框架源码,EventBus,Volley讲了一下

大概聊了一个小时左右,聊得还可以,基本上都回答上了,中间给了我很多建议,不懂的地方,也会仔细跟我讲解一番,其实有一半的时间都是跟我聊产品,为什么这个产品好,怎样做才能迎合市场,然后怎么设计整个产品等,感觉跟我现在水平不是一个层次的,果然,第二天就给我发了一封邮件,说我现在暂时不太合适投递的岗位。

总结

自己对于互联网有一些小小的见解:随着资本的冷却,整个互联网市场也逐渐的冷静下来。
归根到底并不是工作难找了,而是iOS应用开发工程师这个职位已经趋于正常,再也不是没什么技术也能拿高工资的香饽饽。当然这个也不是绝对的,对于中高级的开发人员来说,市场还是比较缺少的,尤其是知名企业对于招聘员工来说,不仅要求有过硬的技术,还要求有高素质,好的教育背景等等。总的来说,高工资可以给你,但是前提条件是你要足够优秀,或者说让面试官觉得你很优秀。
其实面试过程就是一个把你自己推销给别人的过程,对于毕业不久的同学来说就是要让面试官感觉你技术好,有培养价值。感慨有点多了,还是来点干货吧,大概列举一下每一轮面试的大概范围和深度,但是也不是绝对的,还是要看具体情况。

笔试

对于社招的同学来说,基本上不需要笔试,但是也有公司是需要的。笔试都是比较基础的一些知识,Java、Android等方面的,一般不会有网络,计算机等方面的笔试,一般情况下大家都能答出来。

一、二面

近一段时间的面试经历来说,一、二面的问题没有什么很大的区别(公司基本上都有3面技术面,但是也有例外,我在美团就是2面技术面),基本上都是一线开发人员。主要考察你是否有牢固的基础知识和是否在平常开发中能熟练使用。是否能讲解清楚你所做的项目,以及使用到的相关知识。
  • Android基础知识
  • Java基础知识,大概是多线程,线程安全,集合类,JVM,类相关知识等。
  • Android一些源码的阅读
  • 优秀的第三方框架源码阅读

三、四面

一般公司都是三轮技术面,但是也有四轮技术面的,不过不多。很多公司基本上每一轮面试官都会记录他所询问的问题,以便给下一轮面试官作参考,还有就是避免对同一个知识点多次询问。所以到了这轮面试,基本上不会再询问比较基础的知识。会从两个方面考察:
  • 广度:比较新的技术(Rxjava,插件化等),JVM,GC,网络,数据库,Android(一般不会询问之前面试官问过的问题)。
  • 深度:一般会通过1或2个问题来考察
  • 项目中的贡献,所做的优化
  • 设计能力,基本上不多,这个要看面试的岗位,因为我这里面试的只是高级开发,并不是架构
  • 工作中的亮点和突出

HR面

基本上到了这轮,你就算通过面试了。hr会询问一些你的经历,最主要的还是和你商定薪资待遇。
在这轮,大家应该要对自己的薪资水平有一个大体的了解,一般都是在原来的工资基础上增长20%~30%的样子,当然,如果你在面试过程中表现非常优秀,也可以不受这个限制。当然如果公司诚心要你,就算你要的工资过高,hr也会委婉的告诉你,不会直接把你pass。

选择公司

我觉得选择公司应该从以下几个方面来考虑:
  • 公司是否在上升期。
  • 所做的东西是否有市场价值,自己是否感兴趣。
  • 通过面试基本了解将要共事的同事技术情况,毕竟如果你周围的人很优秀,那么你肯定也不会差,一定要跟优秀的人一起共事,你会获得很大的成长。
  • 薪资待遇,毕竟我们找工作就是为了养家糊口,我相信这一条也是很多人决定一家公司的重要理由之一。
#美团##阿里巴巴##面经##快手##社招#
全部评论
感谢大佬分享!欢迎参加社招面经活动~~ -------------------- 活动:社招面经征集|参加过社招的牛友,来发面经吧,拿京东卡
点赞 回复
分享
发布于 2019-10-21 14:39

相关推荐

6 17 评论
分享
牛客网
牛客企业服务