空指针(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,没有在报空指针