CrazyDailyQuestion icon indicating copy to clipboard operation
CrazyDailyQuestion copied to clipboard

每日一问: 水滴石穿,聚沙成塔,坚持数月, 必有收获~

Results 100 CrazyDailyQuestion issues
Sort by recently updated
recently updated
newest added

1. 利用AspectJ的 @AfterThowing 做日志上报工作 2. 本地的异常、崩溃信息,Android有专门的接口可以拿到 收集这些数据后上传,用于分析。android提供了UncaughtExceptionHandler来帮助你处理崩溃

### LRU Cache LRU是Least Recent Used的缩写,即最少使用的Cache置换算法,是为虚拟页式存储管理服务的。Cache是高速缓存,这是IT行业经常见到的概念。CPU中的Cache能极大提高存取指令和数据的时间,让整个存储器(Cache+内存)既有Cache的高速度,又有内存的大容量。 Cache虽然速度快,但是容量有限。因此当Cache容量用完而又有新的内容添加进来的时候,就需要选取Cache中的部分内容进行舍弃,然后添加新的内容。LRU Cache的替换规则是:每次选取最久不被使用的内容进行舍弃,然后添加新的内容。之前上操作系统,老师告诉我的LRU Cache Algorithm中文翻译是最近最久未使用算法。 ### 思路 LRU的典型实现是double linked list + hash map。原理是: 双向链表根据每个节点最近被访问的时间有序存储,最近被访问的节点存储在表头,最近没有被访问的节点存储的表尾,存储依据是因为:最近被访问的节点在接下来的一段时间仍有很大的概率被再次访问到。 哈希表的作用是用来提高查找效率,如果不使用哈希表,则查找一个节点的时间复杂度是O(n),而使用了哈希表,则每个节点的查找时间复杂度为O(1)。 #### 查找(GET)操作: 根据键值查找hashmap,如果没找到直接返回-1 若找到对应节点node,则将其插入到双向链表表头 返回node的value值 #### 插入(SET)操作: 根据键值查找hashmap。如果找到,则直接将该节点移到表头即可 如果没有找到,首先判断当前Cache是否已满 如果已满,则删除表尾节点...

### 1. 是否能拥有静态成员 静态内部类可以有静态成员(方法,属性),而非静态内部类则不能有静态成员(方法,属性)。 ### 2.访问外部类的成员 静态内部类只能够访问外部类的静态成员,而非静态内部类则可以访问外部类的所有成员(方法,属性)。