gpt4 book ai didi

java - 为什么 Java Number 数据类型不会溢出?

转载 作者:搜寻专家 更新时间:2023-11-01 04:01:35 24 4
gpt4 key购买 nike

为什么 java Number/Numeric 数据类型如 (Integer/Long/...) 不抛出溢出异常?例如:我们得到以下的数学错误答案

Integer val = Integer.MAX_VALUE * 2;
System.out.println("Max val unexpected" + val);

** 最大 val unexpected-2**

我知道;这些数据类型的核心使用原始 Java 数据类型。尽管如此,通过抛出诸如 ..ValueOverflowException 之类的东西来防止错误答案并不是一个好主意。想扩展和添加此行为,但这些所有类都是最终的..

请发表您的想法和意见。

最佳答案

这些类型只是原始类型的包装器,因此如果它们的行为不同,那将是意想不到的。这些类型不抛出这些异常的原因之一是,如果执行此类检查,成本将非常高,并且处理器上的这些整数类型在溢出时不会触发中断(相比之下,浮点类型可以触发中断用于各种 Activity )。如果您希望支持任意精度,那么您可能会对 BigInteger 类型感兴趣。

关于java - 为什么 Java Number 数据类型不会溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4536864/

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