3.transient
变量修饰符。标记为transient的变量,在对象存储时,这些变量状态不会被持久化。当对象序列化的保存在存储器上时,不希望有些字段数据被保存,为了保证安全性,可以把这些字段声明为transient。
4. volatile
volatile修饰变量。在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
看看Java Language Specification中的例子。
条件:一个线程不停的调用方法one(),一个线程不停的调用方法two()。我测试过多次,这种情况好像一直没有出现。
class Test {
static int i = 0, j = 0;
static void one() { i++; j++; }
static void two() {
System.out.println("i=" + i + " j=" + j);
}
}
结果偶尔会出现j大于i的情况,因为方法没有同步,所以会出现i和j可能不是一次更新。一种防止这种情况发生的办法就是声明两个方法为synchronized 的。
分享到:
相关推荐
java 关键字总结大全,最新版本的java8中所有的关键字总结
java关键字大全及解释java关键字大全及解释java关键字大全及解释
Java关键字是预先定义的具有特别意义的标识符,也可以叫Java保留字,Java关键字不能用作变量名、方法名、类名、包名和参数。
Java关键字解释,方便英文不好的Java初学者理解.
Java关键字大全,Java中关键字解析
java关键字。java关键字。java关键字。java关键字。java关键字。java关键字
Linux中Java变量与java关键字。MyEclipse快捷键大全。Java方法 终于有东西和大家分享了 哈哈
Java关键字大全 doc 文档 ,学习必备,目前我看到的最好的关键字文档
java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java ...
该文档主要介绍了java关键字的用法及说明
一些关于Java关键字的描述,很详细的。其中还有代码
本文档系统列举了Java的关键字及其用法分类
java 关键字
.JAVA关键字和英语单词,有祝于学习Java基础的加快进步
本文档包含了java所有的关键字以及一些说明,Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等。
Java关键字列表 上面列出了Java所有的关键字
整理JAVA关键字信息
java关键字解析 对java的一些关键字的意义进行解析
JAVA关键字详解JAVA关键字详解JAVA关键字详解JAVA关键字详解JAVA关键字详解