WeakHashMap,从名字可以看出它是某种 Map。它的特殊之处在于 WeakHashMap 里的entry可能会被GC自动删除,即使程序员没有调用remove()或者clear()方法。 WeekHashMap 的这个特点特别适用于需要缓存的场景。在缓存场景下,由于内存是有限的,不能缓存所有对 ...
分类:
其他好文 时间:
2018-08-02 20:40:13
阅读次数:
110
引用增强,是一个比较特殊的增强,不同于其他方法级别的增强。 引用增强可以实现:一个Java类,没有实现A接口,在不修改Java类的的情况下,使其具备A接口的功能。 先看看背景,我们有个Love接口: 还有一个Greeting接口和我们的GreetingImpl实现类,这两个是我们的目标接口和目标类, ...
分类:
其他好文 时间:
2018-07-29 00:12:19
阅读次数:
184
Java四种引用包括强引用,软引用,弱引用,虚引用。 强引用:只要引用存在,垃圾回收器永远不会回收Object obj = new Object();//可直接通过obj取得对应的对象 如obj.equels(new Object());而这样 obj对象对后面new Object的一个强引用,只有... ...
分类:
编程语言 时间:
2018-07-26 21:13:14
阅读次数:
181
1:引用计算法 用判断对象的是否被引用指向来确定是否应该回收对象,缺点在于两个对象互相引用的时候是不能被回收的 2:通过判断对象是否能直接到达GC roots对象来判断是否能回收。如果两个对象互相阴影,而又不可到达GCRoots也应该完成回收。 引用的分类: 强引用:就是在程序中普遍存在,类似new ...
分类:
编程语言 时间:
2018-07-03 11:46:39
阅读次数:
166
4种引用 1、强引用在一般的Java 程序中,见到最多的就是强引用(strong reference)。如Date date = newDate(),date 就是一个对象的强引用。 2、软引用(内存不足的时候才会回收)软引用(soft reference)在强度上弱于强引用,通过类SoftRefe ...
分类:
其他好文 时间:
2018-06-30 12:47:25
阅读次数:
153
好多场景会导致循环引用,例如使用Block、线程、委托、通知、观察者都可能会导致循环引用。 1、委托 遵守一个规则,委托方持有代理方的强引用,代理方持有委托方的弱引用。 实际场景中,委托方会是一个控制器对象,代理方可能是一个封装着网络请求并获取数据的对象。 例如:ViewController中需从网 ...
分类:
移动开发 时间:
2018-06-15 16:10:51
阅读次数:
214
ARC当中变量的四种生命周期限定符 __strong __weak __unsafe_unretained __autoreleaseing __strong 是默认的限定符,无需显示引入,只要有强引用指向,对象就会长时间驻留在内存中。可以将__strong理解为reatain调用的ARC版本。 _ ...
分类:
其他好文 时间:
2018-06-15 12:51:59
阅读次数:
172
过了一周了,进度似乎有点懈怠,不过过了周末重整旗鼓啦shell(外壳)GUI:Gnome,KDE,xfceCLI:sh,csh,ksh,bashbash(父进程)-----bash(子进程)他们相互独立彼此不知命令历史:historybash支持的引号:‘’命令替换(键盘~的按键)“”弱引用,可以实现变量替换``强引用,不完成变量替换文件名通配符:*:任意字符?:任意单个字符[]:匹配指定范围内的
分类:
系统相关 时间:
2018-05-21 14:43:34
阅读次数:
190
上一篇文章中对于block做了一个全面的剖析和理解,那么在OBjective—C的block使用中我们难免会用到以上几个关键字,其实对于__block上篇文章已经做了解释,这篇文章,我会做几个关键字的区别和总结,来加深认识和理解。 上篇文章知道 clang -rewrite-objc 可以将OC代码 ...
分类:
其他好文 时间:
2018-05-17 19:54:33
阅读次数:
284