擅长:python、mysql、java
<p><code>NullPointerException</code>是当您试图使用一个指向内存中任何位置(空)的引用时发生的异常,就像它在引用一个对象一样。对空引用调用方法或尝试访问空引用的字段将触发<code>NullPointerException</code>。这些是最常见的,但是其他方式列在<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html" rel="noreferrer">^{<cd1>}</a>javadoc页面上。</p>
<p>可能我能想到的最快的示例代码是:</p>
<pre><code>public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
</code></pre>
<p>在<code>main</code>内的第一行,我显式地将<code>Object</code>引用<code>obj</code>设置为<code>null</code>。这意味着我有一个引用,但它没有指向任何对象。之后,我试图通过调用对象上的方法来将引用视为指向该对象。这将导致一个<code>NullPointerException</code>,因为在引用所指向的位置没有要执行的代码。</p>
<p>(这是一个技术性问题,但我认为值得一提:指向null的引用与指向无效内存位置的C指针不同。空指针实际上不指向任何地方,这与指向碰巧无效的位置有细微的不同。)</p>