2

好奇心が旺盛です。

私はいくつかのJavaコードを書きましたが、Null Pointer Exceptionが表示されています。ポインターをサポートしていないのに、Java が Null ポインター例外を与えるのはなぜですか?

4

5 に答える 5

5

ポインター演算がないという事実は、言語でポインターが使用されていないという意味ではありません。Java に関して言えば、多くのポインターがあり、.ではなく で参照をたどるだけ->です。

于 2012-08-10T12:56:40.613 に答える
1

Object referencesはポインターにすぎませんが、 のように複雑ではありませんPointers。違いはこちらをご覧ください。

于 2012-08-10T12:58:53.200 に答える
1

Java.ポインターをサポートしています (またはがあるたびに使用します[)。

ポインタ算術をサポートしていません。つまり、数学を使用してポインタを別のポインタに操作する機能です。

これを変換された C/C++ プログラマーに指摘するために、彼らは C 名を引き継がず、別の名前を付けました。JVM レベルではすべてがポインターですが、Java プログラマーは参照を使用する場合にのみこれを確認するため、例外の名前は不適切です。

于 2012-08-10T13:03:39.923 に答える
1

Javaには確かにポインターがあります。(a) オブジェクトへの参照、または (b) nullの 2 種類の値を持つことができます。これは、仕様で使用される言語です。

ただし、Java ポインターは、C ポインターよりも Pascal ポインターに似ています。

于 2012-08-11T03:06:04.387 に答える
0

これは、Java の「C」遺産からの持ち越しです。それは貿易の用語でもあります。

于 2012-08-10T12:56:48.707 に答える