什么是Java空指针异常,它是如何发生的?如何修改?
当我们创建一个引用类型的变量时,实际上是创建了一个指向该变量的一个指针,例如:
Person tom = new Person();
这种情况下是,tom 其实是指向Person对象的一个指针。
如果我们访问一个没有初始化的对象时,就会出现空指针异常。例如,我们声明了一个Person对象tom,而没有给tom赋值(初始化),这样再调用tom的方法是就会出现空指针异常。
package com.codingdict; public class Q1 { public static void main(String[] args) { Person p=null; p.getName(); } } class Person{ public void getName() { System.out.println("tom"); } }
package com.codingdict; public class Q1 { public static void main(String[] args) { // s 为null, 当调用s的方法时会抛出空指针异常 String s = null; s.toLowerCase(); } }
输出结果如下:
Exception in thread "main" java.lang.NullPointerException at com.codingdict.Q1.main(Q1.java:6)
如果是方法我们需要对方法参数做出判断:
static void hello(String name) { if (name!=null) { System.out.println("Hello,"+name.toUpperCase()); } }
java 避免空指针的方法: