`
zjx2388
  • 浏览: 1330957 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Java中的strictfp

阅读更多

Java语言中关键字strictfp的用途
                                      

自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-changes.pdf

    在Java语言的发展历程中,JDK 1.2的发布引入了`strictfp`关键字。这一关键字的出现主要针对的是浮点运算的精确性问题,特别是对于那些对精度有严格要求的应用场景。本文将详细介绍`strictfp`关键字的意义、作用机制...

    java中的关键字大全

    ### Java中的关键字大全 在Java编程语言中,关键字是一组预定义的词汇,它们具有特殊的含义和用途。理解和掌握这些关键字对于编写有效的Java程序至关重要。本文将详细介绍Java中的一些核心关键字,并提供相应的解释...

    Java编程中常用修饰词使用方法

    Java 编程中常用修饰词使用方法 Java 语言中定义了 11 个常用的修饰词,每个修饰词都有其特定的使用场景和作用。下面对这 11 个 Java 修饰词进行详细的介绍: 1. public 修饰词 修饰对象:类、接口、成员 介绍:...

    2022年Java入门系统Java基础知识部分总结.docx

    在 Java 中,一个 Java 文件中可以有多于一个类定义,但是只能有一个 public class 定义,且与文件同名。假如一个 Java 源文件中没有 public 类,那么每个类的名字没有特别的规章,不必与文件同名。在编译后产生的 ...

    java面试100题

    Java 中的关键字有 native、strictfp、transient 和 volatile 等。 1. native 修饰符,表示方法是由另外一种语言(如 c/c++,FORTRAN,汇编)实现的本地方法。 2. strictfp 修饰符,表示类或方法遵守 IEEE-754 规范...

    java语言基本语法.docx

    Java语言中有一些关键字,它们是Java语言的保留字,不能作为标识符使用。这些关键字包括: * abstract、boolean、break、byte、case、catch、char、class、const、continue、default、do、double、else、enum、...

    JAVA语法大全(基本语法)

    JAVA关键字共有50多个,包括abstract、boolean、break、byte、case、catch、char、class、const、continue、default、do、double、else、extends、final、finally、float、for、goto、if、implements、import、...

    java中“53”个关键字(含2个保留字)

    在Java编程语言中,关键字是具有特殊含义的预定义标识符,它们被Java解析器用来识别语法结构。这些关键字不能用作变量名、类名或方法名。在Java中,一共有53个关键字,包括两个保留字。下面将详细阐述这些关键字的...

    Java语法基础+一些 JAVA案例,和正则表达式

    Java的关键字是预定义的,它们有特定的含义,例如`abstract`、`double`、`int`、`strictfp`等。同时,标识符是程序中重要的组成部分,用于命名常量、变量、数据类型、类和方法。它们必须遵循特定的规则,如首字符不...

    华为java培训讲义

    Java的关键字是特定的,如`strictfp`等,不应在自定义变量、方法或类名中使用。 总的来说,华为的Java培训讲义涵盖了Java开发的基础知识,包括环境配置、运行机制、垃圾回收、安全性和编程规范,这些都是Java开发者...

    Java自学总结94点

    1. **标识符**: 在Java中,标识符用于命名类名、变量名、方法名等。标识符可以由字母、数字、下划线`_`及美元符号`$`组成,但不能以数字开头。 - 示例:`identifier_sys_var1`、`$charUserName`、`user_name` 2. ...

    Java语法大全.pdf

    上述文本中包含的关键字列表实际上是不完整且有错误的,例如,`strictfp`不是Java 2中的关键字,可能是误读。正确的关键字列表应当参考Java官方文档。 Java有八种基本数据类型: 1. **整型**:`byte`(8位)、`...

    Java入门基础之Java的基本语法与Java所支持的数据类型

    修饰符在Java中用于控制访问权限和定义特性,例如`public`用于声明公共成员可被任何其他类访问,`private`则限制访问仅限于同一类内,`final`表示不可更改,`abstract`用于定义抽象类,而`strictfp`则确保浮点运算的...

    华为java内部培训讲义

    - 随着Java版本的发展,新的关键字可能会被加入,例如`strictfp`、`assert`、`enum`等。 #### 八、扩展知识点 - **包的使用**: 通过`import`语句导入所需的类或整个包。 - **类的加载与初始化**: Java中类的加载和...

    Java标识符、关键字和保留字

    Java中的关键字、保留字和标识符是程序设计的基本组成元素,它们具有特定的含义和用途。 **关键字**: 在Java中,关键字具有特殊的意义,它们是编程语言的保留字,用来指示编译器执行特定的操作。Java关键字是小写...

    java关键字和java命名规范.pdf

    Java关键字和命名规范是Java编程语言中的基础概念,它们对于编写清晰、规范的代码至关重要。Java关键字是Java语言内置的、具有特殊用途的保留字,而命名规范则是关于如何给类、方法、变量等命名的约定。 ### Java...

    应聘Java时出现频率最多的问题

    以下是一些在Java笔试中出现频率较高的问题及解答: 1. **访问修饰符的区别** - `public`: 所有类都能访问。 - `protected`: 同一个包内的类和不同包下的子类可以访问。 - 默认(无修饰符): 同一个包内的类可以...

    Java语法大全史上最全语法

    - `const`: 保留关键字,但目前未在Java中使用。 - `continue`: 用于跳过当前循环迭代。 - `default`: 用于枚举类型中的默认值。 - `do`: 用于do-while循环。 - `double`: 基本数据类型之一,表示双精度浮点数。 - `...

    完整版精品java课件 Java基础入门教程 Java程序设计 第2章 java语言基础(共31页).ppt

    Java的关键字包括enum、strictfp、goto等,这些词在Java语法中有特殊含义,不能作为标识符使用。 接下来,我们讨论Java的数据类型。Java数据类型分为两大类:基本数据类型和复合数据类型。基本数据类型包括布尔型...

    统计你的项目中所有java文件中有效代码量,注解量及空行数

    本话题主要关注如何统计Java项目中的有效代码量、注解量和空行数。我们将通过编写一个Java程序来实现这一功能,并以`CodeCount.java`作为我们的核心工具文件,而`a.java`和`b.java`则是我们用于测试的Java源代码文件...

Global site tag (gtag.js) - Google Analytics