Java 关键字strictfp、volatile和transient

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chennai1101/article/details/84303196

1. strictfp

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

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

  • 当声明一个方法是strictfp时,该方法中的所有代码都会遵循严格限制规则来执行。
  • 当使用是strictfp来修饰类或接口时,其中的所有代码都会在严格模式下执行。

2. volatile

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

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

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

3. transient

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

当写入序列化对象时,该对象必须实现Serializable接口。默认的序列化处理序列化对象中所有不是transientstatic的字段。

猜你喜欢

转载自blog.csdn.net/chennai1101/article/details/84303196