c / c ++にはポインターの概念があり、ポインターの概念は非常に優れていることがわかっているので、Java開発者がそれを削除する理由と、Javaで使用できない場合の長所と短所は何ですか。
質問する
4834 次
1 に答える
1
マネージド言語では、メモリ管理を不透明にするためにポインタがデフォルトで禁止されています。たとえば、ポインタがない場合は、オブジェクトを互いに近づけて空き領域のより大きなブロックを解放し、キャッシュの一貫性を向上させる圧縮ガベージコレクタを使用できます。ただし、ポインターがある場合は、すべてのポインターを更新するか、ガベージコレクションごとに有効にする必要があります。これは実行不可能です。
(これはもちろん1つの理由です:)しかし、ポインターを許可することでプログラミング言語の機能が大幅に変わる例)
C#などの一部のマネージ言語では、ブロックを宣言できunsafe {}
ます。ブロックでは、アンマネージメモリとポインターを使用できますが、使用できるのはそこだけです。
于 2013-03-13T05:15:12.910 に答える