“倒在”金三银四,金九银十该怎么准备突破自我?Android面试经验总结,成功必看......

“倒在”金三银四,金九银十该怎么准备突破自我?Android面试经验总结,成功必看......_第1张图片

金三银四“倒了”,金九银十该怎么准备呢?相信有很多人有这样的困惑,很多人都准备着在面试旺季时候换一个好点的工作,下面我整理了一点能想到的Android面试题目,也看看自己还能想起哪些?

1、本地广播和全局广播有什么差别?

2、Broadcast注册方式与区别
(1)静态注册(2)动态注册 ,什么情况下用动态注册?

3、http与https的区别?https的实现原理?为什么要用https?

4、用过哪些进程间通信的方式
(1)AIDL,(2)广播,(3)Content Provider

5、三级缓存
(1)内存缓存,(2)本地缓存,(3)网络

6、用过mvp框架么?mvvm是什么?mvp是什么?为什么会出现mvvm?

7、说下View,ViewGroup事件分发机制?

8、做过哪些性能优化?
(1)渲染优化,(2)内存优化,(3)耗电优化

9、内存泄漏原因?如何避免内存泄漏?

10、Android内存管理是怎样的?

11、Java内存模型,介绍下?

12、TCP握手协议是怎样的?

13、Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?

14、Serializable 和 Parcelable 的区别

15、String,Stringbuffer,Stringbuilder 区别

16、Binder机制原理,Android为什么要采用 Binder 作为 IPC 机制?

17、Android中的几种动画介绍下

18、加载大图,你是怎么做的?

19、ANR是什么?怎么避免ANR?

20、为什么要用 ContentProvider?它和 sql 的实现上有什么差别?

21、SurfaceView和View的区别是什么?

22、Dalvik虚拟机与JVM有什么区别?

23、线程间的通信方式?不是进程间。

以上这些只是抛出问题,真正面试中,尤其是大公司中面试,没有固守成规的问法:

举例:抛出一个问题。

是否使用过volatile?你觉得它是线程安全,还是不安全的?如果你答安全的,我会继续问你,为什么?然后我再问你是否使用过synchronized?

它和volatile区别是什么?如果你答不安全,我依然继续问你,为什么?

再抛出一个问题。

有用过Java哪些并发容器,如CopyOnWriteArrayList、ConcurrentHashMap等,如果你答第一个,我会问你使用时需不需要加锁,你说要?我会问为什么?

不要,也会问为什么?然后再问它的原理是怎样?当然还可以持续问很多。如果你答第二个,我会问,ConcurrentHashMap的内部结构是怎样?如果你能说到链表,我会继续问,什么时候链表会变成红黑树?或者什么时候用的是链表,什么时候用的是红黑树?

如果一面,10个问题答对6个以上,基本上就过了。二面的话。会持续再深挖,抛出一个问题,或是你项目中遇到了的一些问题。如果你不了解,那么就再问其他方面问题。持续深挖。看能掏出多少满意的东西。三面会从更小细节去问。基本要答对80%的问题,才会过,否则还是没过。

因为关系能否到HR面。通常来说一轮过了,2-3天会有人继续面你,否则就是没过。也不会有通知。可以选择考虑其他公司了。不是能力不行,只能说双方不适合,或者候选人没有呈现自己牛逼的地方。

面试前的准备

大公司既然重基础,那么面试前一定要好好学习和准备一下这方面的知识。干什么事之前,一定要充分了解情况,古人说的话,还是挺对的,毕竟是 2000 多年来总结出来的经验,面试就是战场,知己知彼才能百战不殆

举个例子:
小猿在一家创业公司从事了两年的 Android 开发,能够独立开发一款软件,技术还是可以的,效率挺高的,总能快速完成经理交给的任务,平时也会在 GitHub 上提交一些开源代码,分享了一些开源库,star 数五六百,好的上千,熟悉使用 RxJava,Retrofit 等网络框架,还会 MVP,MVVM 这样的架构。感觉自己去 BAT 这样的公司面试没问题,可是,还是被打击到了。
人家回复说:学习能力,开源精神都挺好的,就是基础太差。
看到了吗?会使用框架,封装个简单的库,能够做出产品来并不是多大的能力,做好是需要基础的

上面的例子的问题,典型就是不了解自己,也不了解大公司的套路,准备不足,所以才失败的。平时学习的时候,应该要知其然知其所以然才行,然后再多学学算法,原理和一些计算机基础就更完美了。并不是会做就行,基础扎实,才能做得更好。

你只要在面试前,认真准备,充足准备,应该不会有多大的困难。其实大部分程序员面试大公司失败的原因是自己准备不足。大公司去校招成功率比较大的原因是大学学的一些基础没有忘掉,而现在的你,只注重实战,而不注重基础。但是在拼技术的时代,基础很重要,基础和原理懂得的更多,做的东西才会更加牢固。

积累才是根本

前面说了,通过了解面试准则,面试准备,那都是一种临时抱佛脚的方法,让你快速面试成功的一种捷径罢了。其实平时的学习和积累才是根本。通过了解大公司的要求,我们在小公司也应该时刻严格要求自己,不要只注重实战,不要不在乎性能而仅仅去说我实现了就好。

几点建议:

1、简历要如实写,相关的知识点一定要烂熟于心。

2、基础扎实,android和java相关的知识树网上有很多资料,看过但让你讲出来未必能说的好。

3、提前总结,你还擅长什么其他技术?这种开放问题要看知识面了。

4、学会提问,你有什么问题要问我吗?这种礼貌性问题也是一个了解对方的好机会。

5、良好的心里素质,无论遇到什么情况,面试官迟到、面试官态度冰冷说话不客气、质疑你的回答等等各种问题都不要慌也不要排斥,一定要沉住气,耐心积极的思考并回答对方的提问。

6、推荐几本书,也是好几次面试后发现里面涵盖了大部分答案。《Android开发艺术探索》《Android源码设计模式-解析与实战》《Android进阶之光》《深入理解Java虚拟机》《Android音视频开发》《Android进阶解密》多看几遍。

我们在平时的工作和学习的过程中,要时刻保持学习之心,不仅仅注重业务的实现,有时间拿起书来看看基础和原理,了解一些源码,多做一些思考,其实总会慢慢进步的。

系统性复习更有效果

2020,可谓是招聘面试最难季。不少大厂,如腾讯、字节的招聘名额明显减少,面试门槛却一再拔高,如果不用心准备,很可能就被面试官怼得哑口无言。过硬的技术功底是最起码的考核要求,面试前做准备是很重要的,但技术是一点点积累的,就算你全会背了,面试过了,真正等到工作的时候还是会捉襟见肘的,所以踏实点吧骚年。

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2020BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。

还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

领取:【PDF】

Android 基础知识点

Java 基础知识点

Android 源码相关分析

常见的一些原理性问题

腾讯、字节跳动、阿里、百度等BAT大厂 2019-2020面试真题解析

以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。

希望大家在今年的金九银十里能够发挥顺利,进到自己想进的公司,共勉!

你可能感兴趣的:(程序员,Android,面试,Android,Android开发,面试,金三银四,程序员)