java中int是32位有符号整数类型,对应的包装类型提供...在实际编码过程中,怎样判断int或者Integer是否溢出呢? 一、jdk8中提供的java.lang.Math已经帮我们实现了: import java.lang.Math; public class ArithmeticSol
java中int是32位有符号整数类型,对应的包装类型提供了常量Integer.MAX_VALUE代表其最大值,Integer.MIN_VALUE代表其最小值,即int表示的整数范围在-2147483648 ~ 2147483647之间,超过这个范围会发生溢出,且不会抛任何异常。
在实际编码过程中,怎样判断int或者Integer是否溢出呢?
一、jdk8中提供的java.lang.Math已经帮我们实现了:
import java.lang.Math;publicclassArithmeticSolution{publicstaticvoidmain(String[] args){int x= Integer.MAX_VALUE;int xResult;try{ System.out.println("x="+x); xResult= Math.addExact(x, x); System.out.println("x+x = "+ xResult);}catch(ArithmeticException aex){ System.out.println("x + x 溢出,"+ aex.getMessage());}//判断int 减法 是否溢出 x= Integer.MIN_VALUE;try{ System.out.println("x="+x); xResult= Math.subtractExact(x,1); System.out.println("x-x = "+ xResult);}catch(ArithmeticException aex){ System.out.println("x - 1 溢出,"+ aex.getMessage());}//判断int 乘法 是否溢出 x= Integer.MAX_VALUE;try{ System.out.println("x="+x); xResult= Math.multiplyExact