配列インデックスのメモリアドレスを取得することを知っている人はいますか?(cのように)
3805 次
2 に答える
5
Javaには、プログラマーが実現できる「アドレス」の概念はありません。CやC++のような言語では、オブジェクトのIDはそれらのアドレスと同等です。2つのオブジェクトが同じメモリ位置にある場合、それらは同じオブジェクトです。Javaでは、このIDの概念はオブジェクトのアドレスから切り離されています。これにより、C++では不可能ないくつかの最適化が可能になります。たとえば、ガベージコレクターは、理論的には、オブジェクトが正しい場所を指すように参照を変更する限り、断片化を回避するためにオブジェクトをメモリ内で移動できます。プログラマはメモリアドレスに直接アクセスできないため、この操作は許可されています。C ++では、メモリ内の特定のビットパターンが何らかのエンコードされたポインタであるかどうかをコンパイラが判断できなかったため、機能しませんでした。
于 2011-01-13T02:33:55.377 に答える
1
できません。Javaにはダイレクトメモリアクセスがありません。
于 2011-01-13T02:31:51.493 に答える