2017-05-04 16 views
-1

バッファは、ByteBuffer、IntBufferなどの具象サブクラスを持つ抽象クラスです。特定のプリミティブ型のデータのコンテナと思われます。バッファのメリットは何ですか?なぜ配列やリストだけを使用しないのですか?Javaのバッファの目的は何ですか?

+1

差異を強調表示することで、この質問に答える必要があります。例えば、http://stackoverflow.com/q/4841340/438992を参照してください。 –

+0

私は方法が何をするかを見ます。私は、バッファの目的が典型的に何であるのか疑問に思っていました。明快にするために、私の質問の別のバージョンは、「名前のバッファは何を意味するのでしょうか」と読むかもしれません。 –

+0

私はその目的がその能力によって暗示されていると思っていたと思います。 –

答えて

2

バッファは、最も単純な形式で、ある種のメモリの連続したブロックとして定義できます。従って、サイズ4K(4096バイト)のバイトバッファは、メモリ位置0xf000から0xffffを含むことができる。

なぜ、バッファタイプが配列やリストの代わりに使用されるのかについては、これらの2つの選択肢のいずれも内蔵機能がlimit,positionまたはmarkではありません。最初の項目で

、バッファを使用すると、すなわち10の現在limit 1000のcapacityを有することができることでlimitからcapacityを分離し、それに対して、最大可変サイズを有する能力を施行capacityを含みます。他の二つの特徴について

、現在positionは逐次処理を容易に、次の要素を読み書きする組み込み方法を提供し、そしてmark後でリセットするための現在のpositionを保存する方法を提供します。

これらのすべての機能には、配列またはリストと組み合わせて必要な場合は、extraという変数が必要です。

もちろん、が必要な場合は、のいずれかの機能が必要です。是非、アレイを使用してください。

+0

名前バッファは何を意味しますか? –

+0

@CowPowPow、バッファは単なる連続したメモリブロックです。例えば、メモリ位置17の10バイトのバッファは、17から26までのバイトアドレスを占有する。私はそれを答えに加えます。 – paxdiablo

関連する問題