恭喜自己喜提美团Offer!Android开发秋招面经分享:阿里
简历部分
一般需要包含以下内容:
- 个人基本信息
- 获过的奖状
- 主要技能
- 所修课程
- 项目经历
- 实习经历
- 自我评价
如果没有实习经历可以不写,项目经历根据自己的情况写,也可以不写,但最好是要有个自己的项目(最好有亮点),后面面试问完基础一定会问项目的,如果没项目很有可能后面面试跟面试官就没得聊了,那么面试成功的概率会降低,当然不排除能力特别好的同学,总得来说有项目是好的。
笔试部分(Java / android)
一般形式 : 选择+编程、问答
- Java 必考
- jvm 通常都会考2-3题选择或1-2题问答
- 数据结构与算法 必考
- 计算机网络 一般会涉及2-3题选择题
- 操作系统 一般会涉及2-3题选择题
- 数据库 一般会涉及2-3题选择题
- linux 一般会涉及2-3题选择题
- 设计模式 笔试考的相对较少
- 还有软件工程,编译原理之类考的比较少,但也有公司会考
- 还有就是会根据岗位涉及不同的方向题(比如:java后台开发,android开发 会涉及几题简单的选择)
- 编程/问答 必考 编程主要考算法,问答就不一定了(根据岗位而定)
关于笔试涉及的内容还是很多,所以要做好准备,可以把书上的内容复习一遍,配合去牛客网上刷题,会有很大的提升。
重点说三遍:算法很重要,算法很重要,算法很重要
编程题一题分数一般20分左右,所以一定要多练练算法题。
面试部分
只写还记得的
CVTE (Web后台)
一面:(挂)
- Java 类的加载机制
- HashMap原理
- LruCache原理
- 接口与抽象的区别
- Java四大特征
- java内存模型
- tcp三次握手
- http 首部字段有哪些?
- get与post的区别?
- 索引原理
- 复合索引要把那个字段放最前,为什么?
迅雷 (android开发)
一面:
- Java四大特征
- 多态的原理
- jvm垃圾回收算法
- 线程与进程的区别
- 进程间通信
- ArrayList与LinkedList的区别
- Java线程间怎么实现同步,notify()与notifyAll()的区别
- 什么是函数重载,原理是什么?
- http 的工作原理
- tcp 三次握手
- 线程的调度状态图
- 手写冒泡
- 手写单例包括多线程下
二面(群面):(挂)
讲项目
网龙 (android 开发)
面试体验很差,面试官感觉什么都没准备看我的简历然后就看我写的专业技能就开问了,全程没表情,,,。
- android 切换屏生命周期的改变
- 知道有几种排序?说说堆排序原理?这题真的会被气死,我都把堆排序怎么实现,为什么这样可以实现排序,都推了一遍,他说了句你说的只是实现,不是原理。。。表示很无奈,难道算法是靠背的?
- 说说你对索引的理解
- 设计模式分哪3大块,说说行为形的其中一个
- 讲项目
面试体验实在太差,还有几题吧,也想不起来了,面完我就觉得没戏了
美团 (android开发)
不得不说美团的面试官还有面试流程都超赞的。
一面:
自我介绍
- 线程与进程的区别
- 进程间的通信方式
- 什么是同步
- 进程间可以通过什么方法实现同步
- 说说死锁是怎么产生的
- 那么怎么避免和解决死锁
- tcp与udp的区别
- udp怎么实现可靠传输
- 接着对我上面回答继续问,什么是流量控制,什么是拥塞控制
- 对http有什么了解(我讲了http工作原理)
- 接上题TCP的三次握手是什么,为什么不用两次
- 对https有什么了解
- 数据索引的原理是什么
- 有没什么方法可以优化数据的查询
- 数据库事务四大特征
- 数据库事务的隔离级别分别是什么,什么作用
- 进程的调度方式有哪几种
接着手写两道算法题:
秒杀
一面主要问基础,那时才发现原来我基础还可以哈,基本都答上来了。还有一面面试官很帅哈哈。
二面:
二面面试官特别好,一直微笑,给人特别和蔼的感觉,真是很幸运能遇到这么好的面试官。
先自我介绍
- 讲了下自己的经历
- 平常怎么学习的,怎么自己自学的android
- get跟post的区别
- https的原理
- 什么是对称加密,什么是非对称加密,知道的加密算法有哪些?
- android view的绘制原理
- android 的四大组件,分别是做什么
- android广播有哪几种
- LinearLayout与RelativeLayout的区别,什么情况下使用LinearLayout什么情况下使用RelativeLayout
- 怎么实现一个如果布局的层次深度超过50,提示开发者注意布局
- 怎么实现监听手机网络状态的改变
- 说说c++与Java有什么不同
- 接口与抽象有什么不同
- Java怎么实现多继承
- 上题讲了内部类,就接着问静态内部类与非静态内部类的区别
- java类的加载机制
- jvm垃圾回收机制
- 继续讲项目,问了项目中的几点实现
- 还有的忘记了,二面问了android比较多,自己报的岗位也是android。
三面:
三面的面试官真的很有耐心,全程听完我讲的框架,为自己感到幸运。
- 谈谈自己未来的发展方向
- 平时怎么学习的
- 对工作地点有什么要求
- 老家在哪
- 开始切入正题
- 做过的项目遇到过什么困难
- 开始讲自己写的框架(这个讲了很久)
- 内存泄漏与内存溢出的区别
- android什么时候回出现内存泄漏
- 有没遇到过OOM,怎么避免OOM
- 常用的集合
- 线程安全的集合有哪些
- ConcurrentHashMap原理是什么
- 让我多看看源码,学习一下别人写的框架
HR面:
1.期望的工作地点
- 老家在哪
- 期望的薪资
- 谈谈自己的优缺点
- 未来打算怎么发展
- 如果老板给你一个你一个人无法完成的任务,你会怎么办
- 了解美团吗
- 手里有没offer,有没实习过
- 等
最终美团Offer get
面试怎么准备
基础准备:
计算机网络 ,TCP/IP(推荐 TCP/IP详解)
操作系统 (教材就可以)
数据结构与算法 (数据结构看教材就可以,算法刷题 ,看剑指Offer)
数据库基本语法与原理 ( 推荐:高性能Mysql)
java ( java核心卷I)
Java 多线程 (Java多线程编程核心技术)
设计模式 (教材)
linux (教材)
Http
这些可以复习一遍书上的知识,再结合看面经,很快就很熟悉了
项目准备:
对于要不要有项目这一点不是绝对的,个人觉得最好是有项目,不然面试官基础问完基本上也没什么可问的了。
对于项目自己要挖出自己项目的亮点,面试时可以根据自己的亮点来讲自己的项目。
硬实力与潜实力
硬实力就是你目前所拥有的技能与能力,潜实力就是指你的学习能力之类的,在潜实力方面可以多多学习,总结自己学习过程中遇到困难并且是怎么去解决的,简单的讲可以多写写自己总结的技术到博客,或写的框架到github之类。
礼貌
不管面试过程再怎么样也要保持自己的礼貌,你如见到面试官要说:“你好“,面试完后也要说句“谢谢”,用完笔至少也要把笔盖盖上之类的,一些细节性的东西自己要把握好。
总结
秋招是个艰辛的过程,多少次我失望过,绝望过,但我没有放弃过,坚持自己的信念继续努力,要相信自己的实力与能力,还有不要太着眼于学历,当然学历很重要,真心很重要,但实力更重要,只要能有面试机会就要好好把握住,一般公司会先进行笔试成绩与简历综合来筛选面试,但并不是说明自己没机会面试了,所以能有面试就有机会进,如果真的很想进大公司就不要轻易放弃。在这个求职的过程会很艰辛,自己要做好复习准备与心理准备。
真的很感谢美团给的机会,后面继续努力!
最后,有一些资料,是准备面试的知识汇总,数据结构、算法、性能优化、设计模式等等,网络上的基本上都有了。嗯,自己收录、整理和分类的,还请尊重知识产出。
分享给大家的资料包括高级架构技术进阶脑图、Android开发面试专题资料,还有高级进阶架构资料包括但不限于【高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术】希望能帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也是可以分享给身边好友一起学习的!
如果你感兴趣,关注我,欢迎你加入Android开发交流群(820198451)我分享给你,帮助你少走一点弯路。还可以在群里一起交流,互相学习、共同进步!
如果你看到这里,不妨点个赞支持一下,您的点赞是对我创作最大的支持!
简书点赞可以有好几种赞,长按点赞按钮就会有选项,大家点赞的时候,麻烦点个超赞~在这先谢谢您的支持啦!
本文素材来自:啦啦啦~~