gpt4 book ai didi

java - 为什么,在 Java 算法中,上溢或下溢永远不会抛出异常?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:15:52 24 4
gpt4 key购买 nike

在 Java Arithmetic 操作期间,JVM 不会抛出 Underflow 或 Overflow Exception。很多时候我们遇到意想不到的结果,想知道哪里出了问题。

而在 .NET 技术的情况下,我们有溢出和取消流异常。

所以我的问题是,为什么 Java 被设计成在算术运算期间不抛出这个异常

最佳答案

这可能是多种因素的结合:

  1. Java 之前的主流语言使用未经检查的算术。容易出现数值溢出的著名算法倾向于在不依赖已检查算术的情况下解决潜在的溢出问题。
  2. 经过检查的算术在大量使用算术指令的算法中引入了显着的开销,这会使 Java 处于明显的劣势,尤其是在基准测试中。
  3. 一些算法依赖于静默的数值上溢/下溢。如果检查了算术运算,重写这些算法很快就会变得非常重要。
  4. 检查算法对于确保内存安全不是必需的(与空指针和数组边界等其他 JVM 检查相反)。

.NET 虚拟执行环境(现在是 ECMA-335 标准的一部分)为已检查和未检查的算法引入了单独的指令,使其能够独立解决使用现代托管语言的开发人员的性能和安全问题。

关于java - 为什么,在 Java 算法中,上溢或下溢永远不会抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16085286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com