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.

最低0.47元/天 解锁文章
4387

被折叠的 条评论
为什么被折叠?



