`
bornlone
  • 浏览: 30022 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Java 算术运算与移植性

阅读更多

    Java 语言中的其中一个设计目标是可移植性。无论在哪个虚拟机上运行,同一个计算应该得到同样的结果。对于浮点数的算术运算,实现这样的可移植性是相当困难的。double 类型使用 64 位存储一个 double 数值,而有些处理器使用 80 位浮点寄存器。这些寄存器增加了中间过程的计算精度。例如:

 

    double w = x * y / z;

 

    很多 Intel 处理器计算 x * y,并且将结果存储在 80 位的寄存器中,再除以 z 将结果截断为 64 位。这样可以得到一个更为精确的计算结果,并且还能够避免产生指数溢出。但是,这个结果可能与始终在 64 位机器上计算的结果不一样。因此,Java 虚拟机最初规范规定所有的中间计算都必须进行截断。这种行为遭到了数值计算团体的反对。截断计算不仅可能导致溢出,而且由于截断操作需要消耗时间,所以在计算机速度上要比精确计算慢。为此,Java 程序设计语言承认了最优性能与最理想结果之间的冲突,并予以了改进。在默认情况下,虚拟机设计者允许将中间计算机结果采用扩展的精度。但是,对于使用 strictfp 关键字标记的方法来说,必须使用严格的浮点计算,以产生理想的结果。例如可以把 main 方法标记为

    public static strictfp void main(String[] args){}

于是,在 main 方法中的所有指令都将使用严格的浮点计算。如将一个类标记为 strictfp ,这个类的所有方法都必须使用严格的浮点计算。

分享到:
评论

相关推荐

    2022年java语言-java语言程序设计.docx

    Java 语言是一种广泛应用于 PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网的技术,具有卓越的通用性、高效性、平台移植性和安全性。Java 技术拥有全球最大的开发者专业社群。 1. Java 语言发展概况 ...

    java平时实验java平时实验.doc

    Java是一种广泛使用的面向对象的编程语言,它的设计目标是具有高可移植性、健壮性和安全性。在Java实验中,我们需要掌握以下几个核心知识点: 1. **Java开发环境**:Java开发工具包(JDK)是编写和运行Java程序的...

    java复习题库.doc

    * 高度可移植性:java虚拟机可以将java字节代码转换为机器代码,使得java程序可以在不同的设备上运行。 * 动态加载:java虚拟机可以动态地加载java类文件,使得java程序可以在运行时加载新的类文件。 *垃圾回收:...

    关于Java笔试选择题库

    Java的设计目标是具有高度的可移植性,跨平台能力是其一大特点,这得益于Java虚拟机(JVM)的存在。它能够运行在多种操作系统上,包括Windows、Linux、Unix等。 Java的源代码文件以.java为扩展名,经过Java编译器...

    java基础222

    运算符方面,Java支持算术运算、自增/自减、关系运算、逻辑运算、赋值运算以及位运算,如&、|、^、、>>、>>>等。instanceof运算符用于判断对象是否属于特定类或其子类。 表达式和语句构成了Java程序的基本结构,...

    java设计简单计算器

    在Java编程语言中,设计一个简单的计算器涉及到基本的输入输出处理、算术运算以及条件判断。下面我们将深入探讨这个主题。 首先,让我们了解基础。Java是一种面向对象的、跨平台的编程语言,由Sun Microsystems(现...

    java语言编写的一个简单计算机

    同时,通过.jar文件的形式,它体现了Java平台的可移植性。虽然具体的实现细节未在描述中给出,但我们可以推断其背后涉及到的编程知识和技巧。如果你对如何构建这样的程序感兴趣,你可以打开.jar文件,使用反编译工具...

    Java基础教程.pdf

    - 它具有平台无关性、安全性、健壮性和可移植性等特点。 - **简单的Java程序**: - Java程序的基本结构包括类(Class)、主方法(main method)等元素。 - 每个Java程序都至少包含一个类,并且该类中必须有一个main...

    java课后习题答案

    - **高级语言**:接近自然语言,可移植性强,易于学习和维护。 2. **面向过程与面向对象的对比**: - **面向过程**:以过程为中心,通过函数实现步骤化编程。 - **面向对象**:以对象为核心,通过封装数据和操作...

    java的开发入门书

    运算包括算术运算、逻辑运算等,它们由运算元(操作数)和运算符组成。运算元可以是变量或常数,它们在内存中的“尺寸大小”通常以位元组的倍数来计量。流程控制则通过控制语句实现程序的决策和循环等逻辑,包括if...

    Java虚拟机

    1. **Java编程语言**:这是一种面向对象的编程语言,以其简洁性和可移植性著称。 2. **Java类文件格式**:用于定义Java类的二进制格式,即编译后的`.class`文件。 3. **Java虚拟机(JVM)**:执行Java字节码的虚拟环境...

    How Java’s Floating-Point Hurts Everyone Everywhere

    摘要、概述、两个残酷的误解、复杂的算术类示例、矩阵乘法加速的重要性、自我约束、可重复性与可控性、Java试图修正无需修正的浮点问题、异常处理、代数补全、缺乏标志位带来的危险性、关于浮点运算的误解、灾难性...

    java教程基本-java基础知识一

    - **可移植性**:Java代码可以在不同操作系统之间移植。 - **解释型**:Java程序先被编译成字节码,然后由Java虚拟机解释执行。 - **高性能**:通过即时编译技术(JIT),Java的性能得到了显著提升。 - **多线程**:...

    国开电大 Java语言程序设计 形考任务1-2答案.pdf

    它以其跨平台性、安全性、可移植性和高效性能而闻名。Java的设计目标是“一次编写,到处运行”。 1. **JDK(Java Development Kit)**:JDK是Java开发工具包,提供了编写Java应用程序所需的所有工具,包括编译器...

    Java基本数据类型及操作相关实例

    Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性、健壮性和安全性。在Java中,数据类型是程序的基础,它们决定了变量可以存储的值的种类和大小。Java有两种数据类型:基本数据类型和引用...

    基于NetBeans开发的java应用程序集锦1

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、安全性高和可移植性等特点闻名。它不仅适用于服务器端应用,也在桌面应用领域有着广泛的应用。NetBeans是一款强大的集成开发环境(IDE),特别适合于Java开发...

    java课件1-2章25个例题Java语言概述、基本数据类型、运算符与表达式

    Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性、健壮性和安全性。在“java课件1-2章25个例题Java语言概述、基本数据类型、运算符与表达式”中,我们将深入探讨Java语言的基础知识,包括...

    JAVA编写的计算器

    1. **JAVA编程语言**:JAVA是一种广泛使用的面向对象的编程语言,具有跨平台、安全性高和可移植性强等特点。它以类为基本单元,支持多线程和异常处理,适用于开发桌面应用、Web应用以及移动应用等多种类型软件。 2....

Global site tag (gtag.js) - Google Analytics