学习java中空指针异常

定义

当应用程序试图在需要对象的地方使用 null 时,抛出该异常

出现空指针异常的前提条件是?

“空引用” 访问实例相关【对象相关】相关的数据时,都会出现空指针异常。

垃圾回收器: GC

在java语言中,垃圾回收器主要针对的是堆内存。
当一个java对象没有任何引用指向该对象的时候,
GC会考虑将该垃圾数据释放回收掉

public class NullPointerTest{
    public static void main(String[] args) {
        //创建客户对象
        Customer c = new Customer();
        //访问这个客户的id
        System.out.println(c.id);
        //重新给id赋值
        c.id =9521;
        System.out.println("客户的ID是="+c.id);

        c = null;
        //NullPointerException
        //编译器没问题,因为编译器只是检查语法,编译器发现c是customer类型
        // customer 类型中有id 属性,所有可以:c.id 语法过去
        //但是运行的时候需要对象的存在,但是对象没了,就只能出现一个异常
        System.out.println(c.id);


    }


}
class Customer{
    //客户id
    //成员变量中的实例变量,应该先创建对象,然后通过"引用."的方式访问
    int id;
}

代码运行内存图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

piepis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值