首页 文章资讯内容详情

Java数组何时抛出NullPointerException异常

2026-06-04 1 花语

在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文档,如果您尝试执行NullPointerException-

使用空对象调用a方法(实例)。

访问,修改,打印空值(对象)的字段。

尝试访问(打印/在语句中使用)空值的长度。

抛出一个空值。

访问或修改具有空值的元素/插槽。

如果是数组,则为NullPointerException

在Java数组中,引用类型就像类一样,因此,发生NullPointerException的场景几乎相似。使用数组时,发生NullPointerException-

如果尝试访问尚未初始化的数组的元素(为null)。

public class Demo { public static void main(String args[]) { int myArray[] = null; System.out.println(myArray[5]); } }

运行时异常

Exception in thread "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:6)

如果您尝试获取尚未初始化的数组的长度(为null)。

public class Demo { public static void main(String args[]) { int myArray[] = null; System.out.println(myArray.length); } }

运行时异常

Exception in thread "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:6)

如果尝试在尚未初始化的数组上调用任何方法(为null)。

public class Demo { public static void main(String args[]) { int myArray[] = null; System.out.println(myArray.toString()); } }

运行时异常

Exception in thread "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:6)