系统运维系列 之java.lang.NullPointerException出现原因研究和解决方案分析

1 原因分析:
空指针异常都是因为调用null对象的方法,就是一个对象还没有没有正常初始化 就先调用它的方法;程序在使用或访问一个对象的引用时,而该对象等于null则被抛出。

2 场景分析:
2.1 接口类型的对象没有用具体的类初始化;
2.2 访问或修改一个null对象的字段或者求一个数组为null对象的长度或者访问或修改一个数组为null对象中的某一个值;
2.3 返回null,方法的返回值不要定义成为一般的类型,而是用数组。

3 Java中空格字符串" “,空字符串”",和null的区别:
3.1 " “空格字符串 此字符有对应的ASCII码,跟abcd什么的没有区别;
3.2 “”是一个空字符串,是个对象,长度为0在内存中分配一个空间,可以使用Object对象的方法,表示一个字符串对象引用的值为空,String a =”" 声明了一个字符串变量a,变量a的值为空;
3.3 null表示一个对象的值没有分配内存,调用null的字符串的方法会抛出空指针异常,null不是对象,String a=null声明了一个字符串变量a,变量a的引用为空,a没有指向任何的内存空间,在堆中也没有开辟任何的空间。

        String str1="";
        //创建一个字符串对象的默认值为""
        String str2=new String();
        String str3=null;
        //str1和str2被实例化,而str3没有实例化,但str1和str2所指的地址不同,但值一样,都为空
        System.out.println(str1==str1);               //内存地址的比较,返回false
        System.out.println(str1.equals(str2));        //值的比较,返回true
        System.out.println(str2==str3);               //内存地址的比较,返回false
        System.out.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值