2.android性能调优
今日头条
今日头条问的都是网上能找到的。好几个问题都是网上面经的原题,所以刷面经很重要。
一面:
一面主要是问了Android基础、Java基础和数据结构算法
1、软引用和弱引用的区别
2、1亿个数中找出最大的100个数。回答了可以建一个小顶堆,然后问如何建小顶堆以及如何维护小顶堆
3、Bitmap加载过程中OOM了怎么办?回答了可以压缩图片,然后问具体怎么压缩?如果有一张很大size的图片需要加载到手机里怎么办?回答可以局部加载。
4、有了解什么是IntentService么?
5、Activity的几种启动模式有了解么?各自的含义是什么?
6、TCP和UDP的区别,以及简单说了一下TCP三次握手协议
7、手写单例模式
8、除了Lru缓存算法,你还知道哪些缓存算法?
二面
二面面试官是百度t6,主要问了项目相关的问题,也问了一些Android基础和算法数据结构
1、1亿个url存在文件中,里面有重复的url,请问怎么去重?题外:这道题给人的感觉就是这个面试官只会抄网上的题目来“考”面试者,而不是真的用心去了解面试者的Android能力水平,网上这样的“海量数据”处理问题已经被问烂了,而且平时android开发中间几乎很少用到,面试者能答上来无非两者:1、刷过面经;2、真的会“海量数据”处理的大牛,但是Android中是后者的几乎没有,所以这道题没有任何意义,完全就是面试官照抄面试题的应付而已。
2、2*8的最快运算是什么?考察点是位运算,但平时工作中几乎很少“2<<3”这样写,原因是没有必要,因为编译器早就做过这方面的优化。
3、讨论了一下热修复相关的问题
3、一个listview很卡顿,让分析一下其中可能的原因和你碰见这个问题如何动手解决。算是相对比较发散思维的问题,应该能从一定角度反应求职者水平。
高德:
一面
1、cpu的唤醒,cpu休眠会停止线程xxx
2、线程同步synchronized,volatile关键字的用法
3、怎么停止一个线程,waitxxx有用吗?
4、静态内部类引用外部类怎么解决引用问题
5、for循环…的线程同步问题
6、c里面static关键字的用法
7、include头文件两种方式的区别
8、弱引用和软应用的区别
9、Dalvik和ART虚拟机的区别
10、Java虚拟机什么时候进行GC,Android虚拟机呢?
11、弱引用和软引用的区别?各自的使用场景是什么
二面
1、n个元素的集合一共多少个子集
2、view的事件传递机制
3、我们的应用的架构
4、静态内部类访问外部类的做法
5、RxJava和EventBus的区别?好奇怪
6、okhttp访问线程池的问题
小米
小米hr要求每轮面试都必须有一到两个算法题,所以算法和数据结构也是不能放。
一面
一面主要就围绕着我的项目里的展开的讨论,也问了很多Android基础问题。
1、handler的机制
2、RxJava的好处
3、EventBus的内部实现原理是什么?
4、什么是内存泄露,如何分析?MAT和LeakCanary。MAT和LeakCanary的各自优缺点是什么?
5、有哪些常见的内存泄露的原因
6、算法:1)求最大连续子序列之和。2)遍历输出一个文件夹中的所有文件(递归)
7、手写单例模式,单例的使用场景有哪些?
二面
1、算法:非递减序列求个数,例如 1、1、2、2、3、3、3、3、4、7、8、9、9、9,input:3,output:4
网易
笔试:
1、一个类中声明private static Bitmap会引起什么问题,主要考察的是内存泄露
2、Activity的生命周期,主要考虑异常情况
3、ScrollView和Listview的区别?好奇怪的问题
4、两个有序数组a[n]和b[m],合并成一个有序数组并放入a中,a数组开的存储空间保证能放下a和b中所有元素,如何实现效率最高?
面试:
1、listview的卡顿分析和优化
2、listview加载图片会有什么问题,如果引起图片错位是什么原因导致的?怎么解决?
3、自己设计一个Picasso应该考虑哪些方面。图片缓存(DiskLruCache,LruCache)、压缩、listview导致的错位、线程池的数量等
其他的一些小tips
1.尽量避免主观表述,少一点语义模糊的形容词,尽量要简洁明了,逻辑结构清晰。
2.如果自己有博客或者个人技术栈点的话,写上去会为你加分很多。
3.如果自己的 Github 比较活跃的话,写上去也会为你加分很多。
4.注意简历真实性,一定不要写自己不会的东西,或者带有欺骗性的内容
5.项目经历建议以时间倒序排序,另外项目经历不在于多,而在于有亮点。
6.如果内容过多的话,不需要非把内容压缩到一页,保持排版干净整洁就可以了。
7.简历最后最好能加上:“感谢您花时间阅读我的简历,期待能有机会和您共事。”这句话,显的你会很有礼貌。
大厂面试前突击宝典
我在这里准备了一套大厂面试资源,大厂面试题大全+新技术学习书籍+学习笔记,文章下部分只知识部分,希望可以帮助到大家,需要的可以查看我的交流地 【点击我,即可获得!】
HR面
1、谈谈你自己的情况?
【解答思路】:建议大家用 2 分钟得自我介绍,面试官较喜欢的自 我介绍
1、有亮点,每一小段都有一个亮点,而不是平铺直叙
2、有互动,每一小段都会和面试官互动,而不是自说自话,但是 切记,这种互动并不需要面试官配合,绝对不要总是直勾勾地盯着 面试官的眼睛逼着人家配合你,要知道面试官最恐怖的经历就是被 申请人从头盯到尾!
3、 相关性强, 每一小段都和所申请的职位有关系,而不是流水 账。
2.你是否有过工作经验?
【解答思路】:最好的回答是如实回答自己的真实情况。
1、如果面试者 没有工作经验的话,依照岗位要求的技术方向以及岗位职责,把重 点转移到做过的类似的项目经验上去,让面试官确信你的技术能够 胜任这个岗位。
2、有过工作经验的面试者,要把以前的工作经验描述的 和应聘的岗位有相同之处。 正确回答:之前曾经在XX网络科技公司做过网络管理员这个职位, 在工作中我充分利用所学知识,对公司的网络环境进行了净化,同 时对公司的网络进行了安全加固……,在工作当我学到了很多的东 西,甚至包括之前我所没有接触过的方面。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
545569)]
[外链图片转存中…(img-4I2PvyqG-1715838545570)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!