[Java] Null과 NullPointerException

전우석·2024년 3월 26일

Java

목록 보기
21/24

Null과 NullPointerException

Null

Null은 ‘아무것도 참조하지 않음’을 나타내는 이다.

  • Null참조 타입 변수에만 사용될 수 있다.
    • 예를 들어, String, Array, Object 등의 참조 변수는 null 값을 가질 수 있다.
    • 참조타입의 변수가 초기화되었다면(값이 존재한다면) 스택/힙 영역변수/값이 저장된다.
      • 그러나 null 값을 가지는 변수는 스택 영역에만 변수가 등록된다.
      • {필요하다면 변수 호출과 스택/힙 영역 설명}
  • 기본 타입 변수null 값을 가질 수 없다.
    • 예를 들어, int, double, char 등은 null 값을 가질 수 없으며, 이들은 기본값(예: 0, 0.0, '\u0000')을 가진다.

NullPointerException

NullPointerExceptionnull을 참조하는 변수사용하려 할 때 발생하는 예외이다.

  • 참조타입의 변수는 선언 시 초기화하지 않으면 기본적으로 null 값을 가진다.
  • 이 예외는 프로그램이 null 값을 가진 참조 타입 변수에 접근하여 메서드를 호출하거나, 변수의 속성에 접근하려고 할 때 발생한다.
  • NullPointerException은 자주 발생하는 런타임 예외 중 하나이며, 프로그램의 안정성을 해치는 주요 원인 중 하나이다.
// NullPointerException 예시

String myString = null;
int length = myString.length(); // myString이 null을 참조하므로 여기서 NullPointerException 발생

Null 대처 방법

null 체크

  • NullPointerException을 예방하려면 변수 사용 전에 null인지 확인하는 방법이 있다.
if (myString != null) {
    int length = myString.length();
}

Optional 클래스 사용

  • Java 8 이상에서는 Optional 클래스를 사용하여 null 값 문제를 처리할 수 있다.
Optional<String> myOptionalString = Optional.ofNullable(myString);
myOptionalString.ifPresent(s -> System.out.println(s.length()));

NullNullPointerException의 올바른 관리는 Java 프로그래밍에서 중요한 부분입니다. 코드를 작성할 때 null 상태를 적절히 체크하고, 가능하면 Optional 클래스를 활용하여 더 안전한 코드를 작성하는 것이 좋습니다.

Optional 클래스

Optional은 Java 8에 도입된 컨테이너 클래스로, null이 될 수 있는 객체(Integer, Double ..)를 감싸는 래퍼 클래스이다.

  • null 가능성이 있는 객체 대신 사용하여 NullPointerException을 방지할 수 있다.
  • Optional을 사용함으로써 코드에서 명시적으로 null 체크를 수행하는 것을 줄일 수 있으며, 더 가독성 높고 오류를 줄일 수 있는 코드 작성이 가능하다.

0개의 댓글