空指针(Java.lang.NullPointerException)

1、他是啥(what):

  在编程语言中,空指针(英语:Null Pointer)是一个已宣告但并未指向一个有效对象的指针,许多程序利用空指针来表示某些特定条件,例如未知长度数组的结尾或某些无法运行的操作。在可选择类型(optional type)的编程语言中,空指针通常可以跟可为Null的类型(Nullable types)和空值(Nothing value)进行比较。

空指针与未初始化的指针(uninitialized pointer)不同,空指针保证不会和有值的指针相等,而未初始化的指针则是要看所使用的编程语言或编译器而定,在部分编程语言环境下,未初始化的指针无法保证不与有值的指针相等,他可能因为存有存储器残值而指向了某个有效对象。

  空指针错误是一种常见的程序错误,当尝试访问空指针所指向之对象时,就会发生NullPointerException,通常是因为对象未顺利初始化或者提前析构而造成。空指针错误常常出现在类别设计或管理上有缺陷的程序中,一旦出现了空指针错误经常会导致程序死机或崩溃。而在部分编程语言中,则有NullReferenceException(空引用错误),例如.Net平台。

  在Java中,NullPointerException被定义在java.lang.NullPointerException,是一种运行阶段错误(java.lang.RuntimeException)。

2、首先空指针的对象是对象(没毛病),不是基本数据类型,因为基本数据类型没有比赋值,编译器不会编译通过

  a)举个例子

结果

3、Null值不是报空指针的原因

结果

4、去null值里面的东西(属性)才是报空指针的原因

结果

5、解决之道:创建对象的时候要判断对象是否是null值,不是null值才可以进行取值操作如果是null值就打印按返回相应页面,而不得返回空指针,要让程序优雅,对用户体验负责。

6、另外使用equal方法判断要注意把对象取值的参数放在后面可以避免空指针异常

结果

放在后面后

结果输出false,没有在报空指针

 

版权声明:本文为chenzhuantou原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chenzhuantou/p/10194258.html