好奇心が旺盛です。
私はいくつかのJavaコードを書きましたが、Null Pointer Exceptionが表示されています。ポインターをサポートしていないのに、Java が Null ポインター例外を与えるのはなぜですか?
好奇心が旺盛です。
私はいくつかのJavaコードを書きましたが、Null Pointer Exceptionが表示されています。ポインターをサポートしていないのに、Java が Null ポインター例外を与えるのはなぜですか?
ポインター演算がないという事実は、言語でポインターが使用されていないという意味ではありません。Java に関して言えば、多くのポインターがあり、.
ではなく で参照をたどるだけ->
です。
Object references
はポインターにすぎませんが、 のように複雑ではありませんPointers
。違いはこちらをご覧ください。
Javaは.
ポインターをサポートしています (またはがあるたびに使用します[
)。
ポインタ算術をサポートしていません。つまり、数学を使用してポインタを別のポインタに操作する機能です。
これを変換された C/C++ プログラマーに指摘するために、彼らは C 名を引き継がず、別の名前を付けました。JVM レベルではすべてがポインターですが、Java プログラマーは参照を使用する場合にのみこれを確認するため、例外の名前は不適切です。
Javaには確かにポインターがあります。(a) オブジェクトへの参照、または (b) nullの 2 種類の値を持つことができます。これは、仕様で使用される言語です。
ただし、Java ポインターは、C ポインターよりも Pascal ポインターに似ています。
これは、Java の「C」遺産からの持ち越しです。それは貿易の用語でもあります。