1). 在block内部使用外部指针且会造成循环引用情况下,需要用__week修饰外部指针: __weak typeof(self) weakSelf = self; 2). 在block内部如果调用了延时函数还使用弱指针会取不到该指针,因为已经被销毁了,需要在block内部再将弱指针重新强引用一下 ...
分类:
其他好文 时间:
2019-02-28 01:15:10
阅读次数:
209
ThreadLocal 使用场景 使用场景是在于同一个类,但是会开多个线程执行,但是每一个线程可以保持不同的变量状态。 做法如上图,线程类 有成员变量 ,用来存储该线程中的所有的 变量,初始化是一个 数组。 内存泄漏 继承于 ,简单说一下四种引用。强引用,就是我们常规使用的new出来一个对象,这时候 ...
分类:
其他好文 时间:
2019-02-15 19:42:32
阅读次数:
137
十二、垃圾回收面试题 1.Object的finalize()方法 2.Java中的强软弱虚四种引用 (1)强引用 (2)软引用(间接引用) (3)弱引用 (4)虚引用 (5)四种引用区别 ...
分类:
其他好文 时间:
2019-02-12 21:28:53
阅读次数:
194
前言: 本文首先介绍强引用StrongReference、软引用SoftReference、弱引用WeakReference与虚引用PhantomReference之间的区别与联系; 并通过一个高速缓存的构建方案,来了解SoftReference的应用场景。 本文参考书籍Thinking in Ja ...
分类:
编程语言 时间:
2019-02-09 20:47:58
阅读次数:
155
Java中的Reference 1. 常用四种引用 快速记忆法:“硬(俗称的强引用) 软(SoftReference) 弱(WeakReference) 虚(PhantomReference)” 此处将常说的“强引用”记忆成“硬引用”可以对应到次席的“软引用”(反义词:硬 软)这样更容易记住 a. ...
分类:
编程语言 时间:
2019-02-03 00:55:02
阅读次数:
201
在阅读本文之前最好对 Reference 框架有一个整体的把握,可以参考我上一篇博客 "Reference 框架概览" ;本文主要讲了 的子类实现和应用( ); Java 引用的强弱关系 : 一、StrongReference 强引用 :我们通常使用的引用,形如 此时从 stack 中的 o,到 h ...
分类:
其他好文 时间:
2019-01-31 20:47:01
阅读次数:
203
对于 类大家可能会比较陌生,平时用的也比较少,对他的印象可能仅停在面试的时候查看引用相关的知识点;但在仔细查看源码后发现 还是非常实用的,平时我们使用的类都是强引用的,它的回收完全依赖于 GC;但是对于有些类我们想要自己控制的时候就比较麻烦,比如我想在内存还足够的时候就保留,不够的时候就回收,这时使 ...
分类:
其他好文 时间:
2019-01-30 12:51:59
阅读次数:
153
①、强引用就是指在程序代码之中普遍存在的,类似“Object obj=new Object()”这类的引用,只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象。垃圾回收器绝不会回收具有强引用的对象。②、软引用是用来描述一些还有用但并非必要的对象。对于软引用关联着的对象,在系统将要发生内存溢出异常 ...
分类:
编程语言 时间:
2019-01-25 23:49:38
阅读次数:
235
引用类型 强引用StrongReference 最长使用 软引用SoftReference 在即将OOM之前,垃圾回收器会把这些软引用指向的对象加入回收范围 一般可用于同一台服务器内缓存低频访问的中间结果 弱引用WeakReference 下一次YGC时会被回收 虚引用PlantomReferenc ...
分类:
其他好文 时间:
2019-01-19 14:26:38
阅读次数:
246
原文:WPF: 深入理解 Weak Event 模型在之前写的一篇文章(XAML: 自定义控件中事件处理的最佳实践)中,我们曾提到了在 .NET 中如果事件没有反注册,将会引起内存泄露。这主要是因为当事件源会对事件监听者产生一个强引用,导致事件监听者无法被垃圾回收。 在这篇文章中,我们首先将进一步说... ...