请问大神,空指针的对程序有什么影响,是bug吗?
无论它是不是bug、总归是要将其避免掉的。比如你去网上看个电影。点个链接。直接出来一段红色字母...there is nullPoint...
用户体验很差的、将其捕获抛出来就好了
你要是不用,就只是占用一丢丢内存
你要是使用,就会报null的错误之类的问题
只要不报异常,就可以
参考:
http://www.cnblogs.com/fly1988happy/archive/2012/04/16/2452021.html
http://www.cnblogs.com/losesea/archive/2012/11/16/2772590.html
空指针(C语言)介绍 http://www.doczj.com/doc/316af72c58fafab069dc02b3.html
这个问题挺怪的。
按我的理解说一下:
我们通常的套路是,声明一个对象,对象实例化,对象.方法().声明就是:告诉电脑有个杯子,那我们只知道杯子的抽象意义是装水,具体什么颜色,容积多大,造型什么样都不知道,如果这个时候我问你杯子的容积有多大,你当然不能回答,我没告诉你是哪个杯子没告诉你是奶瓶还是保温杯,你当然不能告诉我杯子的容积有多大。实例化,就是告诉电脑杯子具体长什么样子,比如杯子变量=重新买一个杯子。那么这样,就有一个具体的杯子来对应了,这样我再问你杯子的容积有多大,你就可以告诉我了。
举例:
//报错:
杯子类 杯子变量; Cup myCup;
杯子变量.得到容积(); myCup.getVolume();
//正常:
杯子类 杯子变量; Cup myCup;
myCup = new Cup();
//相当于去新买了一个,我们通常声明定义一块儿写就是:Cup myCup= new Cup();
杯子变量.得到容积(); myCup.getVolume();
开始我还觉得问题怪。。。现在不觉得怪了,因为只有当对象.方法的时候,才会空指针。否则,都还无法构成空指针,只能说是,我声明了一个对象,开始以为用的到,后来根本没用到,只不过多分配一些空间罢了。但是并不会发生问题,因为这个时候它还不能被叫做空指针,只是声明了一个变量没有赋值而已。所以空指针只要出现就会出问题。
对于java来讲,如果不给实例化,就会报nullpointerexception。也就这样了,不会有什么别的风险。调调bug仅此而已。运行到这儿,跑不了呗。(所以我认为这是个bug,对程序的影响就是跑不通,当执行到指定的位置,因为没有指定的对象,解决方案就是为对象实例化)