Java中的strictfp关键字
Posted brooksychen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的strictfp关键字相关的知识,希望对你有一定的参考价值。
自Java2以来,Java语言增加了一个关键字strictfp。strictfp的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。
你可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字,例如下面的代码:
1. 合法的使用关键字strictfp
![](https://image.cha138.com/20230227/0ff483103ccf420c8707092aa5a91b64.jpg)
![](https://image.cha138.com/20230227/0dc83bf3339e4b7f8bbeb11df08fe8a4.jpg)
![](https://image.cha138.com/20230227/0ff483103ccf420c8707092aa5a91b64.jpg)
![](https://image.cha138.com/20230227/0dc83bf3339e4b7f8bbeb11df08fe8a4.jpg)
![](https://image.cha138.com/20230227/231269a905d242d59a0b4a7163331062.jpg)
![](https://image.cha138.com/20230227/a12ecaa6907c4918b0943d7e5be85a6f.jpg)
![](https://image.cha138.com/20230227/75cc7d66b77245be8542bcdfdfb2f7d9.jpg)
2. 错误的使用方法
![](https://image.cha138.com/20230227/0ff483103ccf420c8707092aa5a91b64.jpg)
![](https://image.cha138.com/20230227/0dc83bf3339e4b7f8bbeb11df08fe8a4.jpg)
![](https://image.cha138.com/20230227/289ec612e64a44c08b160d07cf1f353d.jpg)
![](https://image.cha138.com/20230227/75cc7d66b77245be8542bcdfdfb2f7d9.jpg)
![](https://image.cha138.com/20230227/0ff483103ccf420c8707092aa5a91b64.jpg)
![](https://image.cha138.com/20230227/0dc83bf3339e4b7f8bbeb11df08fe8a4.jpg)
![](https://image.cha138.com/20230227/231269a905d242d59a0b4a7163331062.jpg)
![](https://image.cha138.com/20230227/a12ecaa6907c4918b0943d7e5be85a6f.jpg)
![](https://image.cha138.com/20230227/75cc7d66b77245be8542bcdfdfb2f7d9.jpg)
一旦使用了关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精确的,符合IEEE-754规范的。例如一个类被声明为strictfp,那么该类中所有的方法都是strictfp的。
以上是关于Java中的strictfp关键字的主要内容,如果未能解决你的问题,请参考以下文章