12)HTTPS怎么实现安全的?问的非常深,包括中间人攻击啥的
13)TCP、UDP,三次握手四次挥手,为什么是三次,为什么是四次
14)DNS的原理和过程,怎么防止DNS污染
15)平时自己怎么学习安卓的,有什么方式
16)算法题:写一个单例模式。
18)设计一个把日志上传到服务器的模块,保证数据不丢失,怎么实现?
19)给个数组,找出数组中第k大的数(利用快排思想/用小顶堆,他说可以用大顶堆?);
20)给一根不均匀烧完需要一个小时的绳子,问如何确定出15分钟
21)Android中Handler机制;
22)Java中HashMap机制,红黑树;
23)synchronized关键字;
24)volatile关键字作用,可见性,重排序,单例模式中为什么可以用它;
25)TCP如何保证可靠传输;
26)客户端设计一个网络库,需要考虑哪些问题;
29)Java中如何判断一个对象是否存活,有哪些GC Root根节点;
30)Java中异常体系;
31)什么时候出现内存溢出、用过什么内存泄漏的工具;
- 二面
1)熟悉那些设计模式呢?
2)动态代理底层是如何实现的?
3)讲讲Retrofit的动态代理吧
4)能简单说说JVM内存模型的目的以及在内存中区分为哪些区域吗?
5)内存回收机制大致讲讲呗?
6)类加载机制完整细致的描述一下把
7)类加载器的双亲委派原则说一下吧?(这里有一个疑问,我说父子类加载器不是继承关系,然后面试官说不太对,这里我有一点点疑问,还请大家告知一下)
8)能说一下Java .class文件的结构吗?
9)线程池的基本机制有了解吗?非核心线程如何保证延迟结束?
10)为什么内部类会默认持有外部类的引用?
11)Handler消息机制简单说一下吧(延时的消息是如何发送的?以及通过Looper.loop()是如何处理延时消息的?)
12)为什么Handler会出现内存泄漏?
13)View中的post和handler的post有什么区别?(我说view中的handler是经过重写的,会处理关于View的相关绘制事件,然后面试官说只回答对了一部分,我有些疑问,还有其他的区别吗?)
14)有用到什么内存泄漏检测的框架吗?知道原理吗?(就是上面所说的JVM内存回收机制)
15)知道关于性能优化相关的吗?能简单讲一下吗?(布局,异步,过渡绘制)
16)能讲一下Activity的启动流程吗?
17)听你讲到了进程间通讯,PackageManagerService和ActivityManagerService进行通信的方式是什么?
18)Binder驱动底层原理了解吗?(mmap的内存地址映射)
19)Serializable和Parcable有什么区别?如何使用?
20)听你说到了sp(SharedPreference),你知道sp能跨进程通讯吗?
三面
1)自我介绍
2)讲个项目,自己最熟悉哪一个
3 )项目做了什么
4)网络请求框架怎么封装
5)还遇到什么问题没有
6)事件分发机制,多个RecycleView 嵌套怎么处理
7)OkHttp源码
8)讲一下拦截器
9)Cache缓存是怎么做的
10)图片做过吗
11)你的图片项目怎么加载大图
12)如何防止OOM
13)做过View 的性能优化吗
14)讲一下View的优化
15)层级布局
16)如何减少绘制
17)针对measure和draw 有什么优化的地方吗
18)多个view 加载卡顿怎么办
- HR面:
1)自我介绍,抓住介绍的点让你详细说说?
2)期望工作地点
3)事业群介绍
4)为什么想要留在北京
5)为什么不读研究生
6)如何看待Android开发,为什么不接触IOS呢
7)刚开始工作压力会很大,你有没有想过怎么处理压力呢
反问
8)有没有健身房
9)有住房补贴或者房源推荐吗
10)招多少个Android应届生呀
11)应届生培养方案
12)为什么来美团?你对美团技术团队的了解有多少?
关于程序员的几个阶段
每个程序员、或者说每个工作者都应该有自己的职业规划,如果看到这里的朋友没有自己的职业规划,希望你可以思考一下自己的将来。
常常思考自己的未来,也从自己的思考中总结出了一些东西,作为第一部分来谈谈。认为一名程序员应该有几个阶段(以下时间都算上实习期):
-
第一阶段----三年
-
我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人。这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发。我们知道如何团队协作、如何使用项目管理工具、项目版本如何控制、我们写的代码如何测试如何在线上运行等等,积累了一定的开发经验,也对代码有了一定深入的认识,是一个比较纯粹的Coder的阶段
-
第二阶段----五年
-
五年又是区分程序员的第二个门槛。有些人在三年里,除了完成工作,在空余时间基本不会研究别的东西,这些人永远就是个Coder,年纪大一些势必被更年轻的人给顶替;有些人在三年里,除了写代码之外,还热衷于研究各种技术实现细节、看了N多好书、写一些博客、在Github上分享技术,这些人在五年后必然具备在技术上独当一面的能力并且清楚自己未来的发展方向,从一个Coder逐步走向系统分析师或是架构师,成为项目组中不可或缺的人物
-
第三阶段----十年
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后
文章所有资料全部已经打包整理好,免费分享给有需要的人,另外小编手头上整理了大量Android架构师全套学习资料,Android核心高级技术PDF文档+全套高级学习资料+视频+2021 BAT 大厂面试真题解析,都是免费分享给大家的,全部都已整理在GitHub上,有需要的朋友可以点击前往领取更多。
资料展示:
bs.csdn.net/topics/618156601)领取更多。**
资料展示:
[外链图片转存中…(img-im1zyOUI-1711277994013)]
[外链图片转存中…(img-9s1itcWj-1711277994013)]
[外链图片转存中…(img-Gdvtk7dK-1711277994014)]