null与空串的区别
1, null不占用空间,空字符串占用一定内存空间
2, null可以赋值给任何对象,而空字条串只能赋值给String
3, 调用null的方法会返回nullpointerexception,调用空字符串的方法不会报错
4, null本身就是个对象,但它是一个不确定的对象,只能给引用形变量赋值,不能给基本类型赋值.(如 int a=null;是错误的)
什么是空指针
1,空指针异常产生的主要原因如下:
(1)当一个对象不存在时又调用其方法会产生异常:对象不存在
(2)当访问或修改一个对象不存在的字段时会产生异常:方法不存在
(3)字符串变量未初始化
(4)接口类型的对象没有用具体的类初始化,
比如: List lt;会报错
List lt = new ArrayList();则不会报错了
(5) 当一个对象的值为空时,你没有判断为空的情况。你可以试着把下面的代码前加一行代码:
if(str!=null && str!="") 改成: if(null!=str); if(null!=str!&&!"".equals(str)) 或者if((“”).equals(str))
空指针的解决办法:
重点关注报错发生的所在行,通过空指针异常产生的两条主要原因诊断具体的错误。同时为了避免空指针的发生,最好在做判断处理时将“null”或者空值放于设定的值之前