Null은 ‘아무것도 참조하지 않음’을 나타내는 값이다.
Null은 참조 타입 변수에만 사용될 수 있다.String, Array, Object 등의 참조 변수는 null 값을 가질 수 있다.null 값을 가질 수 없다.int, double, char 등은 null 값을 가질 수 없으며, 이들은 기본값(예: 0, 0.0, '\u0000')을 가진다.
NullPointerException은 null을 참조하는 변수를 사용하려 할 때 발생하는 예외이다.
null 값을 가진 참조 타입 변수에 접근하여 메서드를 호출하거나, 변수의 속성에 접근하려고 할 때 발생한다.NullPointerException은 자주 발생하는 런타임 예외 중 하나이며, 프로그램의 안정성을 해치는 주요 원인 중 하나이다.// NullPointerException 예시
String myString = null;
int length = myString.length(); // myString이 null을 참조하므로 여기서 NullPointerException 발생
null인지 확인하는 방법이 있다.if (myString != null) {
int length = myString.length();
}
Optional 클래스를 사용하여 null 값 문제를 처리할 수 있다.Optional<String> myOptionalString = Optional.ofNullable(myString);
myOptionalString.ifPresent(s -> System.out.println(s.length()));
Null과 NullPointerException의 올바른 관리는 Java 프로그래밍에서 중요한 부분입니다. 코드를 작성할 때 null 상태를 적절히 체크하고, 가능하면 Optional 클래스를 활용하여 더 안전한 코드를 작성하는 것이 좋습니다.
Optional은 Java 8에 도입된 컨테이너 클래스로, null이 될 수 있는 객체(Integer, Double ..)를 감싸는 래퍼 클래스이다.
null 가능성이 있는 객체 대신 사용하여 NullPointerException을 방지할 수 있다.Optional을 사용함으로써 코드에서 명시적으로 null 체크를 수행하는 것을 줄일 수 있으며, 더 가독성 높고 오류를 줄일 수 있는 코드 작성이 가능하다.