一、空指针产生原因
Java是没有指针的,所以我们常说"Java 指针"就是指"Java 的引用"。空指针就是空引用,Java空指针异常就是引用本身为空,但却调用了方法,这个时候就会出现空指针异常。
成员变量和方法是属于对象的(除去静态的),在对象中才存在相对应的成员变量和方法,然后通过对象去调用这些成员变量和方法。
null可以赋值给引用变量,但不能将null赋给基本类型变量。例如int、double、float、boolean。编译器将会报错。
当直接将null赋值给基本类型,会出现编译错误。但是如果将null赋值给包装类object,然后将object赋给各自的基本类型,编译器不会报,但是你将会在运行时期遇到空指针异常。这是Java中的自动拆箱导致的
而对于空指针来说,它是不指向任何对象的,也就是没有所谓的成员变量和方法,这个时候去调用某些属性和方法时,就一定会出现空指针异常
当一个对象不存在时又调用其方法会产生异常obj.method() // obj对象不存在
当访问或修改一个对象不存在的字段时会产生异常obj.method() // method方法不存在
字符串变量未初始化;
接口类型的对象没有用具体的类初始化
二、空指针的情景
2.1字符串常量未初始化,比较时导致空指针异常
String str=null;
if("yrh".equals(str)){
System.out.println("yrh2");
}
if(str.equals("yrh")){
System.out.println("yrh1");

本文详细探讨了Java中的空指针异常产生的原因,包括未初始化的字符串常量、未判空的对象调用、对null容器的put操作以及null值转换基本类型。并介绍了Optional类的使用来避免空指针异常,提供了预防和处理空指针的实践建议。
最低0.47元/天 解锁文章
498

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



