天天看点

Java 关键字strictfp、volatile和transient1. strictfp2. volatile3. transient

1. strictfp

浮点运算有两种运行模式:严格浮点模式和非严格浮点模式。当我们执行严格浮点运算时,在所有的Java虚拟机实现上运行结果都是精确相等的。

strictfp

可以用来修饰类、接口和方法。

  • 当声明一个方法是

    strictfp

    时,该方法中的所有代码都会遵循严格限制规则来执行。
  • 当使用是

    strictfp

    来修饰类或接口时,其中的所有代码都会在严格模式下执行。

2. volatile

Java所有的内存都存储在内存中,但每个线程都有自己独立的工作内存,保存该线程用到的变量副本。

线程对共享变量的所有操作都必须在自己的工作内存中进行,不同线程之间无法直接访问其他工作内存中的变量,线程间的变量值需要通过主内存传递。

volatile

可以确保对变量的每一个读取操作都能返回最近写入的值。

3. transient

将对象的表示转换为字节流的过程被称为序列化,而从字节流重构一个对象的过程被称为反序列化。

当写入序列化对象时,该对象必须实现

Serializable

接口。默认的序列化处理序列化对象中所有不是

transient

static

的字段。

相关文章

Java synchronized关键字

Java 关键字strictfp、volatile和transient

继续阅读