15.如何解决View的事件冲突?举个开发中遇到的例子?
16.网络请求缓存处理,okhttp如何处理网络缓存的?
17.WebSocket与socket的区别?
18.handler postDelay这个延迟是怎么实现的?
19.hashcode()和 equals()的作用、区别、联系?
20.Handler、Looper、MessageQueue、Thread关系?
21.Hashmap如何解决散列碰撞(必问)?
22.Hashmap底层为什么是线程不安全的?
23.RecyclerView的ItemView层级过深怎么优化?
24.怎么设计Android线程间通信?
25.Bitmap JPG区别 图像处理:JPG、PNG及BMP的区别?
26.广播(全局 本地区别)
27.onSaveInstanceState onRestoreInstanceState区别,调用时机
28.Serializable与Parcable的区别?
29.是否了解SurfaceView,它是什么?他的继承方式是什么?他与View的区别(从源码角度,如加载,绘制等)。
30.说下冷启动与热启动是什么,区别,如何优化,使用场景等。
面试题集和答案在文末
下面我来结合我的面试经历来谈谈不同公司级别的面试难度。
小公司(0-200人)
一般只要你收到这类型公司的面试邀请,只要你能把自己做过的项目架构,项目重难点说清楚,还有一些Android基础知识稍微扎实一点,然后你稍微准备一两个深一点的技术点,什么GC机制、基本的热修复原理说个10分钟,offer妥妥的,个别公司可能会考一些简单的算法题和智力题,比如冒泡、查找等等。在深圳这类型的公司三年安卓的价位一般在12-15这个区间,个别有钱的可能上限可以到18,一般都是15左右。至于面试题太常规,这里我就不多说了,想要看面试题和详细答案的可以直接看总结部分。
中型公司(200-1000人)
这类公司我面的其实也不是很多,深圳面试那家BL,做外汇金融的(ps:金融业务相关的公司都比较有钱,如果面试过程中面试官表现出对你有兴趣,聊薪资的时候你就可以大胆要)我去面试的时候,公司应该是在扩招阶段,面试的人很多。问的问题比较广泛,Java、Android、算法、框架都有涉及到,虽然问的都比较基础,但是我回答的都会比他问的更深入一点,也许是对我比较有好感,聊了半个多小时后,他叫我稍等一下,然后去叫来了他们的Team Leader。然后问了一些事件分发和绘制流程的细节问题,还问了一些binder的原理性问题,我…基本上能答出来,然后leader就直接问我,期望薪资是多少(一般技术面试官直接问你这个问题了,也就代表这份offer已经稳了)我说:22K。leader笑着说了句:好,说下周会给我答复。
后来也确实收到了答复,但是答复说22k给不了,18k能不能来入职,然后…就没有然后了。
大型公司(5000人以上)
腾讯
一面之后就没有音讯了,所以没有什么发言权…
面试问的跟其他小公司一样从基础问起,但面试官会一步一步往深的问,直到你答不出来为止,然后下一个点 ,框架、原理性问题和性能优化方面的工作经验是比较注重的。也不觉得是自己答的太烂,只能说面试者中优秀的人太多,自己不够亮眼吧
上海哔哩哔哩(B站)
B站一面
1.自我介绍
2.treemap、红黑树、完全平衡二叉树
3.快速排序和插入排序
4.个大致有序的数组如何排序,最快时间复杂度
5.如何自定义实现一个FlexLayout
6.RecyclerView的回收复用机制
7.如何实现RecyclerView的局部更新
8.说说对泛型的了解,Retrofit中的泛型是怎么解析的
9.说说对binder机制的了解
10.进程的状态,线程的状态,两者有区别吗
11.synchronized锁住对象的理解
12.Fragment replace生命周期变化
13.TCP和UDP有什么区别? 讲讲招手挥手过程
14.用过C++开发吗
15.Dalvik和Hotspot虚拟机了解吗?有什么区别?
B站二面
1.说自己做过最满意的项目
2.性能优化你做过哪些工作
3.屏幕适配做过哪些工作
4.遇到过哪些坑(困难点),是怎么解决的
5.如果要你来开发B站的一个页面,哪一个页面可以很快入手
6.用过哪些框架?MVVM?Jetpack有入手吗?
7.用过哪些开源库
6.热修复、插件化都用过,遇到过哪些坑?可以讲讲原理吗
7.为什么想来B站,看哪种视频多一点,点赞多还是白嫖多
8.你觉得B站APP有哪些可以优化的地方
面试B站可以说纯粹是因为兴趣吧,大学时期就一直用B站的APP,学习娱乐都是非常不错的地方。因为要去杭州面阿里,所以在上海朋友那里玩两天,顺便面阿里之前试试B站预热一下,一面二面是紧接着面的,邀请我三面的时候,我已经离开上海去了杭州,就没有后文了。
蚂蚁金服
实话实说,蚂蚁金服是我内推面试的,之前投过简历,但是没有收到面试。
这次面试难度总的来说中等偏上,面试过程跟腾讯的差不多,也是从基础往深处问,问到你答不出来为止。还问了一些安全性问题,因为我前几年的工作也是做金融的,所以相对来说比较轻松些,也正因如此才来了蚂蚁金服。其他注重的就是架构技术,设计思想,还有第三方库的一些掌握使用这些。
技术面试过后,hr会跟你谈薪资,众所周知,阿里的福利待遇是很好的,月薪18k,也算不错的。
期间也内推面试过百度、华为、字节、美团等公司。但是百度和华为对学历都有较高的要求,所以并没有拿到面试机会。字节、美团倾向于招5年以上的技术专家,所以也没有成功。
面试复习笔记:
这份资料我从春招开始,就会将各博客、论坛。网站上等优质的Android开发中高级面试题收集起来,然后全网寻找最优的解答方案。每一道面试题都是百分百的大厂面经真题+最优解答。包知识脉络 + 诸多细节。
节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
给文章留个小赞,就可以免费领取啦~
戳我领取:Android对线暴打面试指南、超硬核Android面试知识笔记、3000页Android开发者架构师核心知识笔记
《960页Android开发笔记》
《1307页Android开发面试宝典》
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
《507页Android开发相关源码解析》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
最后,我把我之前和这一个月的面试题及答案按照规范整理成了PDF,有1200多页,附带简历模板和算法打包成了文件夹。需要的朋友可以在评论区留下您的邮箱地址,我定期会抽空看评论,然后发给大家。
感谢您阅读这篇文章,如果可以收到您的点赞,那是将使我非常荣幸,希望我们可以成为朋友,一起分享交流Android技术。如果你原意,可以加入我们三千人的交流群,私信我【666】可获取群号。
文末
我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
最后
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
腾讯、字节跳动、阿里、百度等BAT大厂 2019-2021面试真题解析
资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-Qxmt3iAA-1712998972156)]