Java空指针异常:NullPointerException

Java空指针异常(NullPointerException):空指针异常属于运行时异常(RuntimeException),即:编译会通过,但运行时会报异常。当你调用某个实例对象的方法时,如果该实例对象是个空引用,没有指向任何类,就会报空针。

日常开发中报空指针异常的常见场景: 场景1:调用某个对象的方法,但是实例化时,给该对象赋予了一个空引用,即该对象指向了空的引用,例如toString()

场景2:给引用变量赋值为null,自动拆箱时导致空指针异常

场景3:字符串常量未初始化,比较时顺序不当导致空指针异常,交换顺序即可避免报空指针异常

场景4:接口类型的对象没有使用具体的类进行初始化导致空指针异常

场景5:ConcurrentHashMap 这样的容器不支持 Key 和 Value 为 null,强行 put null 的 Key 或 Value 会出现空指针异常

    检查使用之前是否进行了初始化; 尽量避免在函数中返回 null 值,如果必须要返回 null 值,一定要给出详细的注释信息; 外部传值时,一定要及时的进行判空处理(除非有明确的说明可以为 null ); 使用 equals() 方法时,要遵循 "常量在前变量在后"的原则; 使用 valueOf() 替换toString(); 通过返回空的 Collection 或 Array 来替代 null 值; 使用注解 @NotNull、@Nullable; 定义合理的默认值,遵守约定(比如设置默认值,设置是否允许为空,从而形成合理的约定); 从数据库取数据,可以约束哪些字段不能为空。 Java中的8种数据类型,变量的值可以有其默认值,假如没有对其正常赋值,Java虚拟机是不能正确编译通过的,所以使用基本数据类型一般是不会引起空指针异常的。也就是说,在实际开发中大多数的空指针异常主要与对象的操作相关。

https://blog..net/x1113162924/article/details/126040562

经验分享 程序员 微信小程序 职场和发展