MRC 环境下: id 变量赋值给 void * 变量运行时不会有问题。 void * 变量赋值给 id 变量并调用其实例方法,运行时也不会有问题。 ARC 环境下: 直接赋值报错 系统给出解决方案: __bridge id 变量赋值给 void * 变量时的__bridge 与 __unsafe_ ...
分类:
其他好文 时间:
2017-04-14 18:57:45
阅读次数:
259
两段代码 上面两段代码都表示了+1,但是在多线程下Atomic中不需要synchronized,因为Atomic是原子性操作。而++则不行 下面我们来看AtomicInteger源码分析: AtomicInteger用的是sun.misc.Unsafe调用本地方法。 value值用的是volatil ...
分类:
其他好文 时间:
2017-04-12 03:12:01
阅读次数:
215
Java中大部分错误都是基于内存管理方面的。如果想破坏,可以使用Unsafe这个类。 实例化Unsafe: 下面两种方式是不行的 所以,简单方式就是通过反射去实例化Unsafe 避免初始化 当你想要跳过对象初始化阶段,或绕过构造器的安全检查,或实例化一个没有任何公共构造器的类,allocateIns ...
分类:
其他好文 时间:
2017-04-10 18:37:33
阅读次数:
234
1.fail-fast和fail-safe比较 Iterator的安全失败是基于对底层集合做拷贝,因此,它不受源集合上修改的影响。java.util包下面的所有的集合类都是快速失败的,而java.util.concurrent包下面的所有的类都是安全失败的。快速失败的迭代器会抛出Concurrent ...
分类:
其他好文 时间:
2017-04-09 17:09:11
阅读次数:
471
CAS中有三个参数:内存值V、旧值A、预期值B 以AtomicInteger为例 Unsafe是CAS的核心类,Java无法直接访问底层操作系统,而是通过本地(native)方法来访问。不过尽管如此,JVM还是开启了一个后门,Unsafe 它提供了硬件级别的原子操作。 valueOffset为变量值 ...
分类:
其他好文 时间:
2017-04-08 00:28:00
阅读次数:
320
转自: https://dzone.com/articles/understanding-sunmiscunsafe The biggest competitor to the Java virtual machine might be Microsoft's CLR that hosts lang ...
分类:
其他好文 时间:
2017-04-07 20:41:50
阅读次数:
212
一、便利类的成员变量、属性、方法 /**遍历类所以成员变量 * @param <#__unsafe_unretained Class cls#> 要遍历的类 * @param <#unsigned int *outCount#> 成员变量数量 */ // class_copyIvarList(<#_ ...
分类:
其他好文 时间:
2017-04-06 18:39:15
阅读次数:
246
public class ZKConnector implements Watcher{ private static final Logger logger =LoggerFactory.getLogger(ZKConnector.class); private CountDownLatch co... ...
分类:
其他好文 时间:
2017-04-06 09:31:14
阅读次数:
174
ARC在OC里面个人感觉又是一个高大上的牛词,在前面Objective-C中的内存管理部分提到了ARC内存管理机制,ARC是Automatic Reference Counting 自动引用计数。有自动引用计数,那么就得有手动引用计数MRC(Mannul Reference Counting),前面 ...
分类:
其他好文 时间:
2017-04-02 18:28:11
阅读次数:
275
原文链接: http://blog.csdn.net/shanyongxu/article/details/47321441 在C#中使用指针的语法 如果想在C#中使用指针,首先对项目进行过配置: 看到属性了吗?单击: 看到那个允许不安全代码了吗?选中 然后将有关指针,地址的操作放在unsafe语句 ...