年底了,很多人都会考虑是否换一份工作,我整理了一点能想到的Android面试题目,虽然有半年多已经完全没做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天会有人继续面你,否则就是没过。也不会有通知。可以选择考虑其他公司了。不是能力不行,只能说双方不适合,或者候选人没有呈现自己牛逼的地方。
顺便说下:人工智能兴起,把python开发人员拉的需求量非常大,有想学习python的,这里有一份免费学习python资料领取。