1. strictfp
浮点运算有两种运行模式:严格浮点模式和非严格浮点模式。当我们执行严格浮点运算时,在所有的Java虚拟机实现上运行结果都是精确相等的。
strictfp
可以用来修饰类、接口和方法。
- 当声明一个方法是
strictfp
时,该方法中的所有代码都会遵循严格限制规则来执行。 - 当使用是
strictfp
来修饰类或接口时,其中的所有代码都会在严格模式下执行。
2. volatile
Java所有的内存都存储在内存中,但每个线程都有自己独立的工作内存,保存该线程用到的变量副本。
线程对共享变量的所有操作都必须在自己的工作内存中进行,不同线程之间无法直接访问其他工作内存中的变量,线程间的变量值需要通过主内存传递。
volatile
可以确保对变量的每一个读取操作都能返回最近写入的值。
3. transient
将对象的表示转换为字节流的过程被称为序列化,而从字节流重构一个对象的过程被称为反序列化。
当写入序列化对象时,该对象必须实现Serializable
接口。默认的序列化处理序列化对象中所有不是transient
或static
的字段。
相关文章
Java synchronized关键字
Java 关键字strictfp、volatile和transient