Android开发1年半,Crud背景,美团给30K的体验

个人背景如标题所示 , 我的个人背景非常简单 , Android开发经验1年半 , 学历普通 , 2本本科毕业 , 毕业后出来就一直在Crud , 在公司每天重复的工作对我的技术提升并没有什么帮助 , 但小镇出来的我也深知自我努力的重要性 , 想要改变“命运” , 没有背景没有资本的人 , 只能通过勤奋获得 。
Android开发1年半,Crud背景,美团给30K的体验文章插图
幸运女神往往会眷顾努力的人 , 所以当好运降临到我头上 , 我并不诧异 , 目前拿到了美团30K的offer , 下文也不说废话 , 主要分享我这次“美团面试经历”和“个人学习方法” , 希望能帮助到你们 。
内容过多 , 不适合在文章全部阐述 , 下文的面试题以及学习资料都有整理在pdf里 , 需要完整pdf版的 , 可以私信我看到全部资料内容 。
美团面试经历(还原最真实的3面)
Android开发1年半,Crud背景,美团给30K的体验文章插图
美团一面:
1、手写算法题 。 猫扑素数;1到n , 求1的个数;单词反转;
2、Activity的加载模式 。
standard , singleTop , singleTask , singleInstance 。
3、什么时候会用到singleTask?
在MainActivity的时候用到
4、Handler机制?
5、一个线程是否只有一个Looper?
6、如何保证一个线程只有一个Looper?
7、多线程的方式有哪些?
8、ANR异常发生条件
(1)5s内没有响应用户输入事件
(2)10s内广播接收器没有处理完毕
(3)20s内服务没有处理完毕
9、如何分析ANR?
10、自定义View和ViewGroup
11、事件处理:分发 , 拦截 , 处理 。
12、GC算法
13、View动画 , 属性动画 , 帧动画 。 再说下View和属性动画区别 。
美团二面:
1、OkHttp原理?
2、Retrofit原理?为何用代理?代理的作用是什么?
3、ButterKnife原理?用到反射吗?为什么?
4、ANR异常如何查找并分析?
5、JVM内存模型?性能调优?
6、垃圾搜集算法有哪些?G1算法?
7、Http和Https的区别?
(1)Https是ssl加密传输 , Http是明文传输
【Android开发1年半,Crud背景,美团给30K的体验】(2)Https是使用端口443 , 而Http使用80
(3)HttpsSSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比Http协议安全
(4)Https协议需要到CA申请证书
8、加密算法有哪些?对称加密和非对称加密的区别?
(1)MD5 , SHA1 , Base64 , RSA , AES , DES
(2)对称:使用相同密钥 , 需要在网络传输 , 安全性不高 。
(3)非对称:使用一对密钥 , 公钥和私钥 , 私钥不在网络传输 , 因此安全性高 。
9、TCP的三次握手?两次行不行?为什么?TCP攻击知道吗?如何进行攻击?
10、内存优化如何做?
11、看过哪些源码?
12、会对代码进行review吗?何时review?怎么review?
13、项目中遇到的让你棘手的问题?多久解决 , 怎么解决?
14、平时如何学习?何时学习?怎么学习?学习渠道?
美团三面:
1、前几次面试感觉如何?
2、你现在的APP日活是多少?
3、你现在如何处理崩溃日志?
4、你觉得小团队好还是大团队好? 5 你的优点和缺点说下?
6、你的发展方向说下?是先讲究宽度还是讲究深度 , 为什么?
7、为什么离职?
8、其他小问题 , 如哪里人啊?现在工资怎样?要求如何 , 何时到岗啊?有什么问题要问我的吗?
让“努力”成为自己的背景(如何学习?)1、看视频进行系统学习
这1年多的Crud经历 , 让我明白自己真的算是菜鸡中的战斗机 , 也正因为Crud , 导致自己技术比较零散 , 也不够深入不够系统 , 所以重新进行学习是很有必要的 。 我差的是系统知识 , 差的结构框架和思路 , 所以通过视频来学习 , 效果更好 , 也更全面 。 关于视频学习 , 个人可以推荐去B站进行学习 , B站上有很多学习视频 , 唯一的缺点就是免费的容易过时 。
另外 , 我自己也珍藏了好几套视频资料躺在网盘里 , 有需要的我也可以分享给你:
Android开发1年半,Crud背景,美团给30K的体验文章插图
2、读源码 , 看实战笔记 , 学习大神思路
“编程语言是程序员的表达的方式 , 而架构是程序员对世界的认知” 。
所以 , 程序员要想快速认知并学习架构 , 读源码是必不可少的 。 阅读源码 , 是解决问题 + 理解事物 , 更重要的:看到源码背后的想法;程序员说:读万行源码 , 行万种实践 。