모눈종이에 사각사각
int/long 연산 오버플로우 (Math.addExact()) 본문
int 범위를 벗어나는 수를 연산하면 원하는 결과가 나오지 않는다.
int a = Integer.MAX_VALUE;
int b = Integer.MAX_VALUE;
int c = a+b;
System.out.println(c); // -2
하지만 JDK 8부터 Math 클래스에 두 개의 addExact() 메서드가 추가됐다.
두 메서드는 결과에 int나 long 오버플로우가 발생하기 쉬울 때 유용한 메서드이다.
잘못된 결과를 반환하는 대신 ArithmeticException을 던진다.
int a = Integer.MAX_VALUE;
int b = Integer.MAX_VALUE;
int c = Math.addExact(a, b);
System.out.println(c);
Math.addExact() 외에도 Math는 multiplyExact(), substractExact(), negateExact()를 지원한다.
참고 : 앵겔 레너드, 『코딩 개념 잡는 자바 코딩 문제집』, 길벗
'Java' 카테고리의 다른 글
[Intellij] 마우스 우클릭 -> New -> Java Class가 보이지 않을 때 (0) | 2023.03.15 |
---|---|
[Java] Deque(double-endded queue) (0) | 2023.01.20 |
[Java] StringJoiner 사용하기 (0) | 2022.11.24 |
[Java] 기본형과 문자열 간의 변환 (0) | 2022.11.06 |
[Java] 표준 입력 스트림이란? (0) | 2022.11.03 |
Comments