金三银四,铜五铁六,我的面试通关秘籍(含HR)

作者 : 开心源码 本文共4047个字,预计阅读时间需要11分钟 发布时间: 2022-05-12 共150人阅读

前言:

前一段时间和大牛们交流了一下,据反馈现在Android岗位也没有以前那么多了,没这么好找了,面临着互联网的寒冬,不仅仅是Android,大量公司模仿O2O模式导致死掉企业的很多,在加之培训机构大量的培训人,导致供大于求,当然这不意味着饱和,只是市场更趋于正当少量(只需技术好不用怕的)。最近结合少量面试的同学和大牛们反馈,前几天有大牛去阿里面试顺便整理了下少量面试题目。希望对大家有所帮助,后期会不断升级增加新的面试题。可以帮大家查漏不缺。以下是(阿里、腾讯、百度、华为、和字节跳动的试题汇集

就算写出答案也没必要(我写了部分面试答案,有需要的朋友可以浏览文末资料领取一律),由于开发与实际答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去了解吧!切记:不要背答案,多了解。

Android高级总结

1.说下你所知道的设计模式与使用场景
2.Java语言的特点与OOP思想
3.说下java中的线程创立方式,线程池的工作原理。
4.说下handler原理
5.内存泄漏的场景和处理办法
**6.如何避免OOM? **

答:1.使用更加轻量的数据结构:如使用ArrayMap/SparseArray替代HashMap,HashMap更耗内存,由于它需要额外的实例对象来记录Mapping操作,SparseArray更加高效,由于它避免了Key Value的自动装箱,和装箱后的解箱操作
2.便面枚举的使用,可以用静态常量或者者注解@IntDef替代
3.Bitmap优化:
a.尺寸压缩:通过InSampleSize设置合适的缩放
b.颜色质量:设置合适的format,ARGB_6666/RBG_545/ARGB_4444/ALPHA_6,存在很大差异
c.inBitmap:使用inBitmap属性可以告知Bitmap解码器去尝试使用已经存在的内存区域,新解码的Bitmap会尝试去使用之前那张Bitmap在Heap中所占据的pixel data内存区域,而不是去问内存重新申请一块区域来存放Bitmap。利用这种特性,即便是上千张的图片,也只会仅仅只要要占用屏幕所能够显示的图片数量的内存大小,但复用存在少量限制,具体表现在:在Android 4.4之前只能重用相同大小的Bitmap的内存,而Android 4.4及以后版本则只需后来的Bitmap比之前的小就可。使用inBitmap参数前,每创立一个Bitmap对象都会分配一块内存供其使用,而使用了inBitmap参数后,多个Bitmap可以复用一块内存,这样可以提高性能
4.StringBuilder替代String: 在有些时候,代码中会需要使用到大量的字符串拼接的操作,这种时候有必要考虑使用StringBuilder来替代频繁的“+”
5.避免在相似onDraw这样的方法中创立对象,由于它会迅速占用大量内存,引起频繁的GC甚至内存抖动
6.减少内存泄漏也是一种避免OOM的方法

7.说下Activity的启动模式,生命周期,两个Activity跳转的生命周期,假如一个Activity跳转另一个Activity再按下Home键在回到Activity的生命周期是什么样的
8.onRestart的调用场景
9.能否了SurfaceView,它是什么?他的继承方式是什么?他与View的区别(从源码角度,如加载,绘制等)。
10.如何实现进程保活

答:a: Service设置成START_STICKY kill 后会被重启(等待5秒左右),重传Intent,保持与重启前一样
b: 通过 startForeground将进程设置为前端进程, 做前端服务,优先级和前端应用一个级别,除非在系统内存非常缺,否则此进程不会被 kill
c: 双进程Service: 让2个进程互相保护对方,其中一个Service被清除后,另外没被清除的进程可以立即重启进程
d: 用C编写守护进程(即子进程) : Android系统中当前进程(Process)fork出来的子进程,被系统认为是两个不同的进程。当父进程被杀死的时候,子进程依然可以存活,并不受影响(Android5.0以上的版本不可行)联络厂商,加入白名单
e.锁屏状态下,开启一个一像素Activity

11.说下冷启动与热启动是什么,区别,如何优化,使用场景等。
12.为什么冷启动会有白屏黑屏问题?
13.Android中的线程有那些,原理与各自特点
14.ANR的起因
15.三级缓存原理
16.LruCache底层实现原理:
17.说下你对Collection这个类的了解。
18.JVM老年代和新生代的比例
19.jvm,jre以及jdk三者之间的关系?JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
20.谈谈你对 JNIEnv 和 JavaVM 了解?
21.Serializable与Parcable的区别?

Android多线程总结

1.什么是线程
2.线程的状态
3.线程的创立
4.线程中断
5.Thread为什么不能用stop方法中止线程

答:1.即刻抛出ThreadDeath异常,在线程的run()方法内,任何一点都有可能抛出ThreadDeath Error,包括在catch或者finally语句中。
2.释放该线程所持有的所有的锁。调用thread.stop()后导致了该线程所持有的所有锁的忽然释放,那么被保护数据就有可能呈现不一致性,其余线程在使用这些被破坏的数据时,有可能导致少量很奇怪的应用程序错误。

6.重入锁与条件对象,同步方法和同步代码块
7.volatile关键字
8.java内存模型
9.原子性 可见性 有序性
10.线程池ThreadPoolExecutor
11.线程池的种类
12.线程同步机制与原理,举例说明
13.arrayList与linkedList的读写时间复杂度
14.为什么HashMap线程不安全(hash碰撞与扩容导致)

答:HashMap的底层存储结构是一个Entry数组,每个Entry又是一个单链表,一旦发生Hash冲突的的时候,HashMap采用拉链法处理碰撞冲突,由于hashMap的put方法不是同步的,所以他的扩容方法也不是同步的,在扩容过程中,会新生成一个新的容量的数组,而后对原数组的所有键值对重新进行计算和写入新的数组,之后指向新生成的数组。当多个线程同时检测到hashmap需要扩容的时候就会同时调用resize操作,各自生成新的数组并rehash后赋给该map底层的数组table,结果最终只有最后一个线程生成的新数组被赋给table变量,其余线程的均会丢失。而且当某些线程已经完成赋值而其余线程刚开始的时候,就会用已经被赋值的table作为原始数组,这样也会有问题。扩容的时候 可能会引发链表形成环状结构

15.进程线程的区别
16.Binder的内存拷贝过程
17.传统IPC机制的通信原理(2次内存拷贝)
18.Java内存模型(记住堆栈是内存分区,不是模型)
19.类的加载过程
20.什么情况下会触发类的初始化
21.双亲委托模式
22.双亲委托模式的好处
23.死锁的产生条件,如何避免死锁
24.App启动流程
25.Android单线程模型
26.RecyclerView在很多方面能取代ListView,Google为什么没把ListView划上一条过时的横线?
27.HashMap如何保证元素均匀分布

Android View总结

1.View的滑动方式
2.View的事件分发机制
3.View的加载流程
4.View的measure layout 和 draw流程
5.自己设置view需要注意的几点

HR问题汇总

1您在前一家公司的离任起因是什么?
2讲一件你印象最深的一件事情;
3详情一个你影响最深的项目;
4详情你最酷爱最擅长的专业领域;
5公司实习最大的收获是什么;
6与上级意见不一致时,你将怎样办;
7自己的优点和缺点是什么?并举例说明?
8你的学习方法是什么样的?实习过程中如何学习?实习项目中遇到的最大困难是什么以及如何处理的;
9说一件最能证实你能力的事情;
10针对你你申请的这个职位,你认为你还欠缺什么;
11假如通过这次面试我们单位录用了你,但工作一段时间却发现你根本不适合这个职位,你怎样办;
12项目中遇到最大的困难是什么?如何处理的;
13你的职业规划以及个人目标;未来发展路线及求职定位;
14假如你在这次面试中没有被录用,你怎样打算;
15评价下自己,评价下自己的技术水平,个人代码量如何;
16通过哪些渠道理解的招聘信息,其余同学都投了哪些公司;
17业余都有哪些爱好;
18你做过的哪件事最令自己感到骄傲;
19如果你晚上要去送一个出国的同学去机场,可单位临时有事非你办不可,你怎样办;
20就你申请的这个职位,你认为你还欠缺什么;
21当前的offer状况;假如BATH都给了offer该如何选;
22你对一份工作更看重哪些方面?平台,技术,氛围,城市,money;
23理想薪资范围;杭州岗和北京岗选哪个;
24理想中的工作环境是什么;
25谈谈你对跳槽的看法;
26说说你对行业、技术发展趋势的看法;
27实习过程中附近同事/同学有哪些值得学习的地方;
28家人对你的工作期望及自己的工作期望;
29假如你的工作出现失误,给本公司造成经济损失,你认为该怎样办;
30若上司在公开会议上误解你了,该如何处理;
31能否可以实习,可以实习多久;
32在五年的时间内,你的职业规划;
33你看中公司的什么?或者者公司的那些方面最吸引你。

我是以专题的形式来分析关于Android面试通过秘籍,整理资料不易,在Android学习或者者在面试方面有需要提升,准备的朋友可以加入我的技术交流群Android高级架构里面不仅仅有Android各类专题面试资料,BAT高级源码面试题,还有提供学习的系统进阶视频资料,现在面对找工作的困境,需要提升自己的朋友们推荐加入。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 金三银四,铜五铁六,我的面试通关秘籍(含HR)

发表回复