strictfp关键字
2016-04-22 23:15
197 查看
自Java2以来,Java语言增加了一个关键字strictfp。strictfp的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。
你可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及类的构造函数声明strictfp关键字,例如下面的代码:
1. 合法的使用关键字strictfp
strictfp interface A {}
public strictfp class FpDemo1 {
strictfp void f() {}
}
2. 错误的使用方法
interface A {
strictfp void f();
}
public class FpDemo2 {
strictfp FpDemo2() {}
}
一旦使用了关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精确的,符合IEEE-754规范的。例如一个类被声明为strictfp,那么该类中所有的方法都是strictfp的。
你可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及类的构造函数声明strictfp关键字,例如下面的代码:
1. 合法的使用关键字strictfp
strictfp interface A {}
public strictfp class FpDemo1 {
strictfp void f() {}
}
2. 错误的使用方法
interface A {
strictfp void f();
}
public class FpDemo2 {
strictfp FpDemo2() {}
}
一旦使用了关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精确的,符合IEEE-754规范的。例如一个类被声明为strictfp,那么该类中所有的方法都是strictfp的。
相关文章推荐
- SQL Server Change Data Capture
- ehcache,redis,db的性能、一致性比较
- 算法训练 装箱问题
- N皇后问题
- 利用jquery写无缝循环滑动的轮播图
- Android--WindowManager.LayoutParams(下)
- 结构体的使用
- Android从启动到程序运行发生的事情
- ubuntu安装weblogic64位
- 【2016-04-22】php面试心得
- 谈谈自己对java的学习看法
- java笔记--笔试中极容易出错的表达式的陷阱
- SQLite数据库实用的封装
- jdbc03.使用Statement 接口实现增/删/改操作
- Android--WindowManager.LayoutParams(上)
- 链表插入、链表相加、链表相乘、链表排序、链表合并等操作的java实现
- hdoj 1009 FatMouse' Trade
- c#与Java跨语言socket传输float
- HDOJ(HDU) 1994 利息计算(简单题目)
- HDOJ(HDU) 1994 利息计算(简单题目)