English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java에서는 각 타입마다 기본 값이 있습니다. 클래스의 인스턴스 변수를 초기화하지 않으면 Java 컴파일러가 이 값을 대신하여 초기화합니다. Null은 객체 타입의 기본 값이며, 메서드 내의 객체에도 null을 직접 할당할 수 있습니다.
Object obj = null;
null 값을 가진 객체를 사용하거나 (null 값을 대신하여 객체를 사용하면) NullPointerException이 발생합니다.
public class Demo { String name = "Krishna"; int age = 25; public static void main(String args[]) { Demo obj = null; System.out.println(obj.age); System.out.println(obj.name); } }
Exception in thread "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:11)
Java에서 throw 키워드를 사용하여 NullPointerException을 발생시킬 수 있습니다.
public class ExceptionExample { public static void main(String[] args) { System.out.println("Hello"); NullPointerException nullPointer = new NullPointerException(); throw nullPointer; } }
출력 결과
Hello Exception in thread "main" java.lang.NullPointerException at MyPackage.ExceptionExample.main(ExceptionExample.java:6
Java 문서에 따르면, NullPointerException을 시도하면-
null 객체를 사용하여 a 메서드(인스턴스)를 호출
null 값을 가진(객체) 필드에 접근, 수정, 출력
탐색(출력) 시도/문장에서 null 값을 사용하여 길이를 확인합니다.
null 값을 던집니다.
null 값을 가진 요소에 접근이나 수정/슬롯.
이미지를 참조하면, null 값을 투사하면 null 포인터 예외가 발생합니다. 이는 업그레이드가 아닙니다.
public class Demo { public static void main(String args[]) { throw null; } }
Exception in thread "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:5)