Java8 Math新增方法介绍
Java8中Math类新增了一些数学方法,让我们能够更加便捷地进行数学计算。这篇文章将介绍Java8 Math新增的一些常用方法,以及相应的示例说明。
Math.addExact(int x, int y)
这个方法是将两个int类型的数相加,并返回它们的和。如果溢出,即产生一个结果超出了int类型的最大值或最小值范围,将会抛出一个ArithmeticException异常。
示例:
int result = Math.addExact(2147483646, 2);
System.out.println(result); // 输出2147483648
int resultOverflow = Math.addExact(2147483647, 2);
// 抛出ArithmeticException异常,因为会产生溢出
Math.subtractExact(int x, int y)
这个方法是将两个int类型的数相减,并返回它们的差。如果溢出,即产生一个结果超出了int类型的最大值或最小值范围,将会抛出一个ArithmeticException异常。
示例:
int result = Math.subtractExact(2147483646, 2);
System.out.println(result); // 输出2147483644
int resultOverflow = Math.subtractExact(-2147483648, 1);
// 抛出ArithmeticException异常,因为会产生溢出
Math.multiplyExact(int x, int y)
这个方法是将两个int类型的数相乘,并返回它们的积。如果溢出,即产生一个结果超出了int类型的最大值或最小值范围,将会抛出一个ArithmeticException异常。
示例:
int result = Math.multiplyExact(1073741823, 2);
System.out.println(result); // 输出2147483646
int resultOverflow = Math.multiplyExact(1073741824, 2);
// 抛出ArithmeticException异常,因为会产生溢出
Math.incrementExact(int x)
这个方法是将int类型的数加1,并返回它的值。如果溢出,即产生一个结果超出了int类型的最大值或最小值范围,将会抛出一个ArithmeticException异常。
示例:
int result = Math.incrementExact(2147483646);
System.out.println(result); // 输出2147483647
int resultOverflow = Math.incrementExact(2147483647);
// 抛出ArithmeticException异常,因为会产生溢出
Math.decrementExact(int x)
这个方法是将int类型的数减1,并返回它的值。如果溢出,即产生一个结果超出了int类型的最大值或最小值范围,将会抛出一个ArithmeticException异常。
示例:
int result = Math.decrementExact(2147483647);
System.out.println(result); // 输出2147483646
int resultOverflow = Math.decrementExact(-2147483648);
// 抛出ArithmeticException异常,因为会产生溢出
Math.floorDiv(int x, int y)
这个方法是将两个int类型的数相除,并返回商的向下取整值。如果y等于0,则会抛出一个ArithmeticException异常。
示例:
int result = Math.floorDiv(10, 3);
System.out.println(result); // 输出3
int resultZero = Math.floorDiv(10, 0);
// 抛出ArithmeticException异常,因为除数为0
Math.floorMod(int x, int y)
这个方法是将两个int类型的数相除,并返回余数。余数的符号与被除数x的符号相同。如果y等于0,则会抛出一个ArithmeticException异常。
示例:
int result = Math.floorMod(10, 3);
System.out.println(result); // 输出1
int resultZero = Math.floorMod(10, 0);
// 抛出ArithmeticException异常,因为除数为0
Math.floor(double d)
这个方法是将double类型的数向下取整,并返回值的整数部分。
示例:
double result = Math.floor(12.3);
System.out.println(result); // 输出12.0
Math.nextUp(double d)
这个方法返回比参数d略大的浮点数(即最接近d的浮点数,它比d大,但是与d最接近)。如果d为正无穷大,则返回正无穷大。如果d为NaN,则返回NaN。
示例:
double result = Math.nextUp(2.0);
System.out.println(result); // 输出2.0000000000000004
结束语
以上就是Java8中Math新增的一些常用方法,不同的方法可以用于不同的数学计算场景。在使用这些方法的过程中,要注意溢出和除数为0等异常情况。