Puffer ist eine abstrakte Klasse mit konkreten Unterklassen wie ByteBuffer, IntBuffer usw. Es scheint ein Container mit Daten eines bestimmten primitiven Typs zu sein. Was sind die Vorteile eines Puffers? Warum sollte ich nicht einfach ein Array oder eine Liste verwenden?Was ist der Zweck eines Puffers in Java?
Antwort
Ein Puffer kann in seiner einfachsten Form als zusammenhängender Speicherblock eines Typs definiert werden. Daher kann ein Bytepuffer der Größe 4K (4096 Bytes) die Speicherstellen 0xf000
bis einschließlich 0xffff
belegen.
, warum ein Puffertyp anstelle eines Arrays oder einer Liste verwendet werden können, haben keine dieser beiden Alternativen die eingebauten Funktionen von limit
, position
oder mark
.
auf den ersten Punkt, ein Puffer, um die capacity
vom limit
, dass trennt Sie eine capacity
von 1000 mit einem aktuellen limit
von 10. Mit anderen Worten haben kann, erzwingt es die Möglichkeit, eine variable Größe bis haben und einschließlich die capacity
.
Für die beiden anderen Funktionen bieten die aktuellen position
eine integrierte Art und Weise das nächste Element zu lesen oder zu schreiben, einen sequentielle Verarbeitung erleichtert und die mark
bietet eine Möglichkeit, die aktuellen position
für später zurückgesetzt zu speichern.
Alle diese Funktionen erfordern zusätzliche Variablen, wenn Sie sie in Verbindung mit einem Array oder einer Liste benötigt.
Natürlich, wenn Sie nicht eines dieser Features verwenden, dann verwenden Sie auf jeden Fall ein Array.
Was bedeutet der Name Puffer? –
@CowPowPow, ein Puffer ist einfach ein zusammenhängender Speicherblock. Zum Beispiel belegt ein Zehn-Byte-Puffer am Speicherplatz 17 die Byte-Adressen von 17 bis einschließlich 26. Ich füge das zur Antwort hinzu. – paxdiablo
- 1. Azure - Was ist der Zweck eines Ressourcengruppenstandorts?
- 2. Was ist der Zweck der Autoboxierung von Primitiven in Java?
- 3. Was ist der Zweck der Finalisierung in Java?
- 4. Was ist der Zweck der verschiedenen * Zieleigenschaften?
- 5. Was ist der Zweck von javax StreamSource
- 6. Was ist der Zweck eines Application Server Application-Client?
- 7. Was ist der Zweck von flush() in Java-Streams?
- 8. Was ist der Zweck des Standardschlüsselworts in Java?
- 9. Was ist der Zweck des Begriffs "Builder-Überladung" in Java?
- 10. Was ist der Zweck eines IMPLICIT JOIN in SQL?
- 11. Was ist der Zweck eines BPM in einer reinsten Architektur?
- 12. Was ist der Zweck eines DictionaryIndex in Swift?
- 13. Was ist der Zweck eines Routennamens in mojolicious?
- 14. Was ist der Zweck eines Kontext-Managers in Python
- 15. Datenbankschwenkung - was ist der Zweck?
- 16. Was ist der Zweck des Hinzufügens eines ContextLoaderListener zum ServletContext?
- 17. Was ist der Zweck von. * \\?
- 18. Was ist der Zweck der Definition eines Pakets in einer Java-Datei?
- 19. Was ist der Zweck der StringSegment-Klasse?
- 20. Was ist der Zweck von :: in C#?
- 21. Was ist der Zweck von $ in XSLT
- 22. Was ist der Zweck von com.sun.org.apache.xpath.internal.operations.String?
- 23. Was ist der Zweck * .ngsummary.json ist
- 24. Was ist der Zweck von Membership.ValidateUser ist()
- 25. Was ist der Zweck von stype Feld?
- 26. Was ist der Zweck des Skriptbereichs?
- 27. `matplotlib`: Was ist der Zweck des animierten Zustands eines Künstlers?
- 28. Was ist der Zweck des Schließens eines Zweiges
- 29. Was ist der Zweck eines Semikolons vor einem IIFE?
- 30. Was ist der Zweck der statischen hier?
Das Lesen der Dokumente sollte diese Frage durch Hervorheben der Unterschiede beantworten. Siehe zum Beispiel http://stackoverflow.com/q/4841340/438992 –
Ich sehe was die Methoden machen. Ich habe mich gefragt, was der Zweck eines Puffers typischerweise ist. Eine alternative Version meiner Frage könnte zur besseren Übersicht lauten: "Was bedeutet der Name 'Puffer'?". –
Ich nehme an, ich hatte angenommen, dass der Zweck durch seine Fähigkeiten impliziert wurde ¯ \ _ (ツ) _/¯ –