最終更新:2015-06-01 (月) 20:54:12 (3244d)  

java.nio.Buffer
Top / java.nio.Buffer

特定のプリミティブ型のデータを一定の容量だけ格納するコンテナ

https://docs.oracle.com/javase/jp/6/api/java/nio/Buffer.html

メソッド

  • 相対getintget()
    相対一括getIntBuffer?get(int[] dst)
    IntBuffer?get(int[] dst, int offset, int length)
    絶対getintget(int index)
    相対putIntBuffer?put(int i)
    相対一括putIntBuffer?put(int[] src)
    IntBuffer?put(int[] src, int offset, int length)
    IntBuffer?put(IntBuffer? src)
    絶対putIntBuffer?put(int index, int i)
  • 相対操作はバッファの位置(position)に対して行われ、位置は操作が行われた分だけ移動

メモ

  • 本来戻り値の必要のないと考えられるメソッドは、戻り値として自分自身のバッファを返すようになっています。このことにより、たとえば次のように連続した操作を1つの文で記述することができます。
    buffer.put(100).put(200).put(300);

バッファの特徴

  • http://itpro.nikkeibp.co.jp/article/COLUMN/20060417/235453/
  • プリミティブに限定したコンテナ
  • サイズ不変
  • 型の混合は不可
  • 基本的にシーケンシャル・アクセス(ランダム・アクセスも可能)
  • position,limit,capacityという三つのプロパティを持つ
  • ヒープ外のメモリーへの直接アクセスをサポート

サブクラス

  • java.nio.ByteBufferbyte型用のバッファクラス
    java.nio.CharBuffer?char型用のバッファクラス
    java.nio.ShortBuffer?short型用のバッファクラス
    java.nio.IntBuffer?int型用のバッファクラス
    java.nio.LongBuffer?long型用のバッファクラス
    java.nio.FloatBuffer?float型用のバッファクラス
    java.nio.DoubleBuffer?double型用のバッファクラス

参考