摘要: 内存可见性 volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自 阅读全文
posted @ 2018-04-12 16:58 nicknailo 阅读(150) 评论(0) 推荐(0) 编辑
摘要: Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进 阅读全文
posted @ 2018-04-12 16:45 nicknailo 阅读(90) 评论(0) 推荐(0) 编辑
摘要: Java所有类都继承与Object,本文谈谈我对object源码的理解,如果有错的,请看官多多批评指正。 1、registerNatives() 注册本地方法,静态块内运行,将object内native方法都加载上,native修饰表示这个方法涉及JNI,注册本地方法,用C++写的程序。 2、get 阅读全文
posted @ 2018-04-12 15:36 nicknailo 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 一、认识 native 即 JNI,Java Native Interface 凡是一种语言,都希望是纯。比如解决某一个方案都喜欢就单单这个语言来写即可。Java平台有个用户和本地C代码进行互操作的API,称为Java Native Interface (Java本地接口)。 二、用 Java 调用 阅读全文
posted @ 2018-04-12 10:49 nicknailo 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 一、String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: 从上面可以看出几点: 1)String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法。在Java中,被final修饰的类是不允许被继承的,并且该类中的 阅读全文
posted @ 2018-04-12 10:02 nicknailo 阅读(157) 评论(0) 推荐(0) 编辑