面试题学习与复习二
5、MVC、MCP、MVVP 的区别和各种使用场景,如何选择适合自己的开发架构?
[8、Handler 机制原理,IdleHandler 什么时候调用。](about:blank#8%E3%80%81Handler%20%E6%9C%BA%E5%88%B6%E5%8E%9F%E7%90%86%EF%B
C%8CIdleHandler%20%E4%BB%80%E4%B9%88%E6%97%B6%E5%80%99%E8%B0%83%E7%94%A8%E3%80%82)
1、Glide 缓存原理,如何设计一个大图加载框架。
==========================
下面叙述一下三级缓存的流程:
当我们的 APP 中想要加载某张图片时,先去 LruCache 中寻找图片,如果 LruCache 中有,则直接取出来使用,如果 LruCache 中没有,则去 SoftReference 中寻找,如果 SoftReference 中有,则从 SoftReference 中取出图片使用,同时将图片重新放回到 LruCache 中,如果 SoftReference 中也没有图片,则去文件系统中寻找,如果有则取出来使用,同时将图片添加到 LruCache 中,如果没有,则连接网络从网上下载图片。图片下载完成后,将图片保存到文件系统中,然后放到 LruCache 中。
2、LRUCache 原理;
==============
LruCache 算法,又称为近期最少使用算法。主要算法原理就是把最近所使用的对象的强引用存储在 LinkedHashMap 上,并且,把最近最少使用的对象在缓存池达到预设值之前从内存中移除。
3、项目开发中遇到的最大的一个难题和挑战;
=====================
4、说说你开发最大的优缺点
=============
回答技巧:缺点别直接暴露自己真的缺点,当然缺点我知道有些人可能会想过一句话,(我最大的缺点就是对细节的过分追求),对于有这种想法的,我只能默念呵呵哒,优点的话可以按实际说,但不要过分夸大
回答:优点就可以提关于技术与学习能力,以及沟通能力方面.缺点可以稍微思考一下,可能我管理的能力还需要进一步加强,关于 python 技术还有进一步上升的空间,人工智能,数据挖掘这个方向拓展。
5、MVC、MCP、MVVP 的区别和各种使用场景,如何选择适合自己的开发架构?
========================================
6、事件分发机制。
=========
事件分发已经不是直接让你讲了,会给你具体的场景,比如 A 嵌套 B ,B 嵌套 C,从 C 中心按下,一下滑出到 A,
事件分发的过程,这里面肯定会有 ACTION_CANCEL 的相关调用时机
7、单例模式双重加锁,为什么要这样做。
===================
双重校验锁 DCL(double checked locking)
public class Singleton {
//保存唯一实例
private volatile static Singleton mInstance;
//屏蔽外部的 new
private Singleton() {
}
//提供一个全局的访问点
public static Singleton getInstance() {
评论