`
desert3
  • 浏览: 2159668 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

strictfp(转)

    博客分类:
  • Java
 
阅读更多
转自strictfp
方便查找

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的。
分享到:
评论

相关推荐

    c++游戏程序员面试题

    - **Strictfp**:确保浮点运算的一致性。 - **Synchronized**:用于同步线程访问共享资源。 - **Transient**:用于序列化时忽略特定字段。 - **Instanceof**:运行时类型识别。 --- #### 游戏开发相关知识点 **...

    Java语法大全.pdf

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

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

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

    Java语法大全史上最全语法

    - `strictfp`: 用于确保浮点运算的一致性。 - `super`: 用于访问超类的方法或属性。 - `switch`: 用于创建switch语句。 - `synchronized`: 用于同步代码块或方法。 - `this`: 当前对象引用。 - `throw`: 抛出异常。 ...

    初学Java注意什么?

    此外,Java的关键字是不能用作标识符的,例如`abstract`, `double`, `int`, `strictfp`等。 2. **关键字**:Java的关键字用于特定的编程目的,比如控制流程、声明变量类型等。初学者需要记住并理解这些关键字的含义...

    JAVA(J2SEJ2EE)学习笔记pdf

    - 其他关键字: `true`, `false`, `new`, `this`, `super`, `class`, `interface`, `enum`, `assert`, `transient`, `volatile`, `native`, `strictfp` #### 三、数据类型的转换 **1. 基本数据类型之间的转换:** ...

    王者归来之JAVA2核心技术第1卷.基础知识7thJoin4.pdf

    - `strictfp`:浮点计算采用严格的规则。 - `super`:超类对象。 - `synchronized`:线程类的同步方法或代码块。 - `this`:方法的隐式参数或本类的构造参数。 - `throw`:抛出异常。 - `throws`:方法可能抛出的...

    java学习_java语法基础

    浮点数计算的精度问题可以通过使用strictfp关键字来控制,它确保浮点计算遵循FP-strict规则,保证跨平台的数值一致性。另一方面,transient关键字用于标记一个成员变量,表示该变量不应被序列化,即不会被保存在持久...

    JavaSE总结笔记,包含Java核心基础知识

    `private`限制访问权限,`protected`允许同一包和子类访问,`public`开放给所有类,`requires`在Java 9中引入,表示模块的依赖,`return`结束方法并返回值,`short`是短整型,`static`用于静态成员,`strictfp`确保...

    仿知乎java源码-Java2Cpp-Translator:Java到C++转换器

    循环、可变参数、装箱/拆箱、抽象类、同步方法和语句、strictfp、瞬态、 volatile、lambdas 等。 目标语言是 C++ 的受限版本,没有虚方法、继承、模板、lambda 抽象、auto、decltype 等。 翻译器主要对基本翻译建模...

    java基础知识总结

    - `strictfp` 是用于浮点运算精度控制的关键字。 - `volatile` 用于标记可能被不同线程访问和修改的变量。 - `sizeof` 不是 Java 的关键字,Java 中没有此关键字。 - `true`, `false`, `null` 是基本类型和 null 值...

    sun公司java笔试题

    `static`, `strictfp`, `super`, `switch`, `synchronized`, `this`, `throw`, `throws`, `transient`, `try`, `void`, `volatile`, `while`。 【强制垃圾回收】 在Java中,垃圾收集(Garbage Collection, GC)是...

    走进Java1

    JDK 1.2还增加了strictfp关键字和Collections集合类。 1999年4月27日,HotSpot虚拟机发布,最初由Longview Technologies开发,因其高效性能被Sun公司收购。HotSpot后来成为JDK 1.3及后续版本的默认虚拟机。JDK 1.3...

    java基础易忘

    - **严格浮点数 (`strictfp`)**: 该关键字可以用来确保浮点数运算的一致性和可预测性。 #### 21. 对象比较 - **对象引用比较**: 使用 `==` 操作符比较的是对象的引用地址是否相同。 - **对象内容比较**: 使用 `...

    java的语法

    例如:`abstract`、`boolean`、`byte`等,其中有些关键字如`goto`和`strictfp`目前并未被使用。 #### 标识符 标识符用于命名变量、方法、类等,遵循以下规则: - 可以由字母、数字、下划线(_)和美元符号($)...

    Javaclass文件格式之访问标志信息-动力节点共6页

    8. **方法访问标志**:例如`native`表示方法的实现是在本地代码中,`strictfp`确保浮点计算遵循IEEE 754标准。 深入理解这些访问标志对于理解和调试Java程序至关重要,特别是在处理多线程、继承和接口使用等高级...

Global site tag (gtag.js) - Google Analytics