zoukankan      html  css  js  c++  java
  • 空指针异常

    示例:

    /*
        空指针异常(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;
    }
  • 相关阅读:
    移动布局之弹性布局
    .dpg和.webp的图片格式
    跳转不到对应的JSP页面
    CentOS7配置vsftpd3.0.2
    Linux如何将用户从一个组中移除?
    数组和方法
    运算符
    数据类型转换
    Apache的虚拟主机配置及伪静态操作
    Linux--文件的上传和下载
  • 原文地址:https://www.cnblogs.com/xlwu/p/13053015.html
Copyright © 2011-2022 走看看