空指针异常
Posted xlwu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了空指针异常相关的知识,希望对你有一定的参考价值。
示例:
/* 空指针异常(NullPointerException) 关于垃圾回收器:GC 在java语言中,垃圾回收器主要针对的是堆内存。 当一个java对象没有任何“引用”指向该对象的时候,GC会考虑将该垃圾数据释放回收掉。 出现空指针异常的前提条件是? “空引用”访问实例【相关对象】相关的数据时,都会出现空指针异常。 */ public class NullPrinterTest{ public static void main(String[] args){ // 创建客户对象 Customer c = new Customer(); // 访问这个客户变量 System.out.println(c.id);//0 // 重新给id赋值 c.id = 9521;//终身代号 System.out.println("客户的id" + c.id);//0 c = null; // java.lang.NullPointerException // 编译器没问题,因为编译器只检查语法,编译器发现c是Customer类型 // Customer类型中有id属性,所以可以:c.id。语法过了。 // 但是与运行的时候需要对象的存在,但是对象没了,尴尬了,就只能出现一个异常。 System.out.println(c.id); } } class Customer{ // 客户id int id;// 成员变量中的实例变量,应该先创建对象,然后通过“引用”的方式访问。 }
示例:
public class T{ A o1; public static void main(String[] args){ D d = new D(); C c = new C(); B b = new B(); A a = new A(); T t = new T(); // 这里不写代码会出现java.lang.NullPointerException异常。(空指针异常。) /*c.o4 = d; b.o3 = c; a.o2 = b; t.o1 = a;*/ System.out.println(t.o1.o2.o3.o4.i); } } class A{ B o2; } class B{ C o3; } class C{ D o4; } class D{ int i; }
以上是关于空指针异常的主要内容,如果未能解决你的问题,请参考以下文章