NaN과 Infinity 연산, null 출력
2024. 1. 30. 01:18ㆍBackend 취업준비/Java
- 정수 타입을 0으로 연산 할 경우
5 / 0 => ArithmeticException 예외 발생
5 % 0 => ArithmeticException 예외 발생
- 정수 타입을 0.0 또는 0.0f으로 연산 할 경우
5 / 0.0 => Infinity
5 % 0.0 => NaN
- 연산의 결과가 Infinity 혹은 NaN인지 확인하려면 Double.isInfinite() 와 Double.inNan() 메소드를 사용하면 된다.
- 자바에서는 Infinity와 NaN이 Double클래스에 정의 되어 있으며, 연산 또한 가능하지만 유의미한 결과를 얻을 수는 없다.
결과
NaN
-Infinity
Infinity
toString() 과 valueOf()의 null처리
Object nullValue = null;
String str;
str = nullValue.toString(); // NullPointerException 발생
str = String.valueOf(nullValue); // 문자열 "null"로 변환됨
- toString() 은 본래 객체에 대한 정보를 문자열로 전환하기 위한 메서드인데, String에서는 문자열을 반환하도록 오버라이딩 되어 있지만 null객체에는 그렇지 않음.
- 따라서 null객체에 대한 정보를 문자열로 전환하려고 시도하지만, null객체는 말 그대로 참조하는 곳이 없는데, 이를 참조하려 시도하였으므로 NullPointerException발생
- valueOf은 다음과 같이 null일 때의 처리가 되어있다
'Backend 취업준비 > Java' 카테고리의 다른 글
불변 클래스, 불변 객체, String, 래퍼 클래스 (2) | 2024.02.01 |
---|---|
Java 여러 쟁점 정리 (0) | 2024.01.30 |
자바의 String 클래스, 문자열 다루기 (0) | 2024.01.29 |
왜 public static void main 인가? (0) | 2024.01.28 |
JVM 전반에 관하여, 메모리 관리와 GC (1) | 2024.01.28 |