面试题学习与复习二

目录

1、Glide 缓存原理,如何设计一个大图加载框架。

2、LRUCache 原理;

3、项目开发中遇到的最大的一个难题和挑战;

4、说说你开发最大的优势点

5、MVC、MCP、MVVP 的区别和各种使用场景,如何选择适合自己的开发架构?

6、事件分发机制。

7、单例模式双重加锁,为什么要这样做。

8、Handler 机制原理,IdleHandler 什么时候调用。


1、Glide 缓存原理,如何设计一个大图加载框架。

Android面试题:Glide

下面叙述一下三级缓存的流程:

当我们的APP中想要加载某张图片时,先去LruCache中寻找图片,如果LruCache中有,则直接取出来使用,如果LruCache中没有,则去SoftReference中寻找,如果SoftReference中有,则从SoftReference中取出图片使用,同时将图片重新放回到LruCache中,如果SoftReference中也没有图片,则去文件系统中寻找,如果有则取出来使用,同时将图片添加到LruCache中,如果没有,则连接网络从网上下载图片。图片下载完成后,将图片保存到文件系统中,然后放到LruCache中。

2、LRUCache 原理;

LruCache算法,又称为近期最少使用算法。主要算法原理就是把最近所使用的对象的强引用存储在LinkedHashMap上,并且,把最近最少使用的对象在缓存池达到预设值之前从内存中移除。

3、项目开发中遇到的最大的一个难题和挑战;

4、说说你开发最大的优缺点

面试官:说说你最大的优缺点? (25题汇总版)

回答技巧:缺点别直接暴露自己真的缺点,当然缺点我知道有些人可能会想过一句话,(我最大的缺点就是对细节的过分追求),对于有这种想法的,我只能默念呵呵哒,优点的话可以按实际说,但不要过分夸大

回答:优点就可以提关于技术与学习能力,以及沟通能力方面.缺点可以稍微思考一下,可能我管理的能力还需要进一步加强,关于python技术还有进一步上升的空间,人工智能,数据挖掘这个方向拓展。

5、MVC、MCP、MVVP 的区别和各种使用场景,如何选择适合自己的开发架构?

6、事件分发机制。

事件分发已经不是直接让你讲了,会给你具体的场景,比如 A 嵌套 B ,B 嵌套 C,从 C 中心按下,一下滑出到 A,
事件分发的过程,这里面肯定会有 ACTION_CANCEL 的相关调用时机

7、单例模式双重加锁,为什么要这样做。

设计模式一:单例模式(Singleton Pattern)

双重校验锁DCL(double checked locking)

public class Singleton {
	//保存唯一实例
    private volatile static Singleton mInstance;
    //屏蔽外部的new
    private Singleton() {
    }
    //提供一个全局的访问点
    public  static Singleton getInstance() {
    	 if (mInstance == null) {
            synchronized (Singleton.class) {
                if (mInstance == null) {
                    mInstance = new Singleton();
                }
            }
        }
    	//... 其他代码
        return mInstance;
    }
}

双重锁是指volatile关键字和synchronized

使用synchronized是为了保证线程安全,

使用volatile之后,就保证new 不会被指令重排序 (单例模式为什么要用Volatile关键字

8、Handler 机制原理,IdleHandler 什么时候调用。

https://bbs.51cto.com/thread-1094228-1.html

MessageQueue.IdleHandler可以用来在线程空闲的时候,指定一个操作;有点类似Handler.postDelayed(Runnable r, long delayMillis),都是在将来的某一个时间执行一个操作。
不过,使用IdleHandler的好处在于可以不用指定一个将来时间,只要线程空闲了,就可以执行它指定的操作。
比较适合那种需要在将来执行操作,但是又不知道需要指定多少延迟时间的操作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值