Android 开发面试中,面试官最喜欢问那些问题?( 二 )


强引用:这种引用就是我们在平常频繁使用的引用类型,JVM默认的就是这种引用类型的,例如,A a = new A(),这种就是强引用;
在这种类型下,当内存空间不足的时候,JVM宁可会OOM,使得程序异常中止退出,也不会随意的对其进行回收,只有当此对象没有引用的时候,JVM才会回收他 。
软引用:这种引用我们可以这样使用它,sr = new (new A());可以利用sr.get()获取到这个对象,这种引用类型的对象,如果JVM内存足够的话就不会回收他;如果JVM内存不足了,才会回收这些对象 。这种引用类型适合用作缓存来使用 。
弱引用:这种引用可以这用使用他,wr = new (new A());然后利用wr.get()获取到这个对象;这种引用类型的对象,比软引用的对象,拥有更加短暂的生命周期,在垃圾收集器扫描JVM的内存区域的时候,遇到此种引用类型的对象的时候,不管当前内存是否够用,都会回收这些对象 。
3、死锁是什么?必要条件是什么?怎么避免?
死锁避免:
4、TCP与UDP的区别
基于连接与无连接 。
TCP要求系统资源较多,UDP较少 。
UDP程序结构较简单 。
流模式(TCP)与数据报模式(UDP) 。
TCP保证数据正确性,UDP可能丢包 。
**5、算法题:**给定一个非空字符串 s 和一个包含非空单词列表的字典,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词 。
1、自定义View需要重写那些方法?
(结合实际需求,需要滑动则重写,需要控制自身布局则重写,)
2、如何进行布局优化呢?
3、消息机制
4、说说你对UI优化的理解
三、C公司
1、介绍项目
刚刚说了,不多介绍
2、有没有了解过插件化?插件化和组件化什么区别?
3、什么时候用的,什么时候用的
4、一定要在主线程中更新UI吗?能不能在子线程更新?
5、是如何兼容Java的?
复盘了这么多,其实细心的朋友可以发现,大厂面试对Java基础、基础还是比较看重的,所以在面试前,进行一波知识的梳理是很有必要的 。
【Android 开发面试中,面试官最喜欢问那些问题?】知识梳理完之后,也准备了不少的电子书和面试笔记等学习文档,这些笔记将各个知识点进行了完美的总结(包含了很多内容: 基础、Java 基础、 源码相关分析、常见的一些原理性问题等等):