所谓的空指针异常,就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法。比如上面的s假如为null,你还要用s的方法,比如s.equals( String x);那么就会产生空指针异常。
产生空指针异常的原因:
(1) 当一个对象不存在时又调用其方法会产生异常 obj.method() // obj对象不存在
(2) 当访问或修改一个对象不存在的字段时会产生异常 obj.method() // method方法不存在
扩展资料:
空指针正常工作意义:
在许多语言,这不是一个单独的转义序列,而是八进制转义序列,单个八进制数字为0;因此,‘\0’不能跟随任何数字0通过7;否则它被解释为更长的八进制转义序列的开始。被在使用中发现各种语言的其他转义序列\000,\x00,\z,或的Unicode表示\u0000。
表示空字符的能力并不总是意味着生成的字符串将被正确解释,因为许多程序将认为null作为字符串的结尾。因此,键入它的能力(在未经检查的用户输入的情况下)会创建一个称为空字节注入的漏洞,并可能导致安全漏洞。
空字符以逗号表示是^@。在Windows上,可以通过按住Ctrl键,然后按@(这通常需要同时按下⇧ Shift并按下数字2键)。
参考资料:百度百科——空指针
空指针异常:就是对象为空,java一切都是对象,
比如,字符串有个length()方法,null是没length方法的,String.length()是没问题的,但是,null.length()那就肯定有问题,这就是空指针异常。
产生空指针异常的原因:
(1) 当一个对象不存在时又调用其方法会产生异常 obj.method() // obj对象不存在
(2) 当访问或修改一个对象不存在的字段时会产生异常 obj.method() // method方法不存在
拓展资料:
1.空指针异常抛出的异常信息一般是:
Exception in thread "main" java.lang.NullPointerException
at xx.Test.tt(Test.java:7)
at xx.Test.main(Test.java:17)
从异常信息中可以看出具体在那个类的哪一行,比如我的在第7行
2.然后查看代码中的第7行
3.从上述图中,我们明显可以看到第7行有个变量“y”,那就有可能变量“y”为空导致的,打印一下y的值
4.打印结果
5.所以一般来说,在调用某个对象之前,要进行非空的验证,否则就容易出空指针异常。
<%
ConnectDB db=null;
db.getConection();
%>
此时db没有被new,所以它并不能作为一个对象存在,此时就会报空指针异常错误。
Object obj = new Object();
你要知道 obj是一个Object指针变量,指向Object类的一个实例
我们说obj是一个对象 实质是它指向一个对象的首地址
如果这个指针变量obj 没有指向任何空间 你调用它的方法和属性就会出错
例如 Object obj = new Object();
obj.equals("123");这个是没错的
但换下面语句 Object obj = null;
obj.equals("123");就会出现空指针异常
慢慢体会体会
这种错误要少犯,面试的时候也不要说你经常见,要不你直接走人..