干了三年JAVA还不知道的关键字(strictfp,transient)

607 阅读1分钟

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战

strictfp

定义:用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范,当对一个类或接口 使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是 IEEE 754 算法对操作数预期的结果,以单精度和双精度格式表示。

如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以用关键字strictfp.

当我们不使用strictfp修饰的时候

image.png

当我们使用strictfp修饰的时候

image.png

我们发现没有什么区别,所以这个关键字我们基本上没什么用

transient

1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。

2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。

3)被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。

大家理解一下就散了吧。

总结

有些关键字用的少是有原因的,多的不说了好吧,不要吝啬你的点赞!!!