ポインタを無くした弊害の事例 ― 2008年06月23日 13時10分13秒
厳しい環境などではガーベッジコレクションの時期や量などで、問題になるとも聞くが、別に C や C++ でも、ガーベッジコレクションを用いた実装もあるので、メモリの扱い自体が問題ではない。
オブジェクトを用いた高級言語として Java を扱うと、実際にメモリアクセスを必要とする事は無い。しかし、低レベルの操作を行なおうとすると色々と不便な目にあう。例えば、I/O stream 等がその典型的な例だろう。InputStream には二つの read がある。int read(byte[] b) と int read(byte[] b, int off, int len) がそれだ。
C 言語にはこのような二つの read など必要無い。C 言語では、read に読み出すバイト列のアドレスを渡す。それに引き替え、Java では、バイト列のアドレスを直接渡すことが出来ないので、int read(byte[] b, int off, int len) のインターフェイスを用いて、何処に読み出すのかを指定する必要がある。どのみち、必要な変数の数は変わらないが、インターフェスが繁雑になる。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2008/06/23/3592031/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。