Datentypen Warum überhaupt Byte ?

P

phip1611

Gast
Wie ich hier erfahren konnte wird intern bei Berechnungen int genutzt. --> interne Konvertierung von Java nötig

Warum sollte man dann überhaupt noch byte benutzen anstatt direkt int? Dadurch macht man dem System letztenendes doch nur noch mehr Arbeit. Oder?

Danke im voraus!
 
T

tröööt

Gast
der sinn hinter den verschiedenen datentypen sind deren wertebereiche ... gleich wie es java intern verarbeitet ...
 
P

phip1611

Gast
Das heißt also ich verwende int, habe einen größeren Wertebereich und gleichzeitig hat die VM weniger Arbeit? :D
 
S

Spacerat

Gast
byte wird aber tatsächlich ziemlich selten genutzt, meist nur beim Ablegen der Daten in einer Datenbank, wenn überhaupt.
Was verstehst du unter Datenbank? Hoffentlich alles, womit Daten persistent gemacht werden können, z.B. auch Dateien. Für diese und andere Streams sind Bytes bzw. Bytearrays nämlich unumgänglich, auch wenn man es zunächst gar nicht mitbekommt, weil man ObjectStreams usw. verwendet. Wäre ja was, wenn man da für jedes einzelne Byte ein separates Int verwenden müsste. In dieser Hinsicht machen dann auch alle anderen niederen Datentypen wie Boolean (verschwendet gleich ganze 31 Bits), Short und Char wieder Sinn, nämlich wenn man Wertebereiche ohne ständige Bitverknüpfungen eingrenzen will bzw. muss.
 

piu58

Mitglied
Dieses (leicht lösbare) Arithmetikproblem scheint gegen Byte zu sprechen. In älteren Programmiersprachen herrscht hingegen der Ganzzahlwahnsinn. In C gibt es sechs Typen von Ganzzahlen, welche jeder Compiler anders interpretieren darf. Sie dürfen sogar alle gleich sein. Wenn man da so etwas wie Byte braucht, muss man auf char ausweichen, was eigentlich kein Zahlentyp ist.
Die Festlegungen von Java sind schon ganz vernünftig. Alles beruht auf einem Ganzzahltyp genügender Größe. Als Programmierer muss man sich viel weniger Gedanken machen und kann sich stärker auf die eigentliche Aufgabe konzentrieren. Wenn man mit byte arbeiten muss, kommte man um eine kleine eigen Bytearithmetik allerdings nicht herum, welche sich um die Überläufe kümmert.
 

TheDarkRose

Gesperrter Benutzer
In C gibt es sechs Typen von Ganzzahlen, welche jeder Compiler anders interpretieren darf. Sie dürfen sogar alle gleich sein. Wenn man da so etwas wie Byte braucht, muss man auf char ausweichen, was eigentlich kein Zahlentyp ist.

Ne, da gibts dann structs, z.b uint8, int16, etc. die einen die Länge und Typ garantieren ;)
 

javapower

Mitglied
Die Regel ist für mich simple: Wenn es keinen zwingenden Grund gibt, für eine Ganzzahl nur 8 bit zu benutzen, dann arbeite mit ints! Analoges gilt für short!
 

TheDarkRose

Gesperrter Benutzer
[OT]
> uint8_t, int16_t

Die sind aber nicht standardisiert.

Jein, beim gcc aber quasi-Standard. Somit habe ich auf jedem Zielsystem meine garantierte Bitbreite, was ich benötige. Gut Qt bringt seine eigenen Typedefs mit ^^
Aber eben meist nur bei Datenströmen (UART, ...) nötig. Ansonsten sollte man wie in Java mit int arbeiten um die natürliche Bitbreite des Prozessors zu nutzen :)[/OT]

Die Regel ist für mich simple: Wenn es keinen zwingenden Grund gibt, für eine Ganzzahl nur 8 bit zu benutzen, dann arbeite mit ints! Analoges gilt für short!

Würde ich auch so unterschreiben. Das Argument mit dem zuviel verbrauchten Speicher wegen der Größe der ints, ist bei heutigen System IMHO irrelevant geworden.
 
Zuletzt bearbeitet:
S

Spacerat

Gast
was wäre das denn bei Dateien? ;) Stream-read()-Methoden liefern schon jetzt int,

hätte was auch mit int[] zu arbeiten, String.getInts() statt getBytes(), ach ja, Probleme gibts sowieso immer
Ja, zugegeben, das tun sie. Aber erstens geben sie entweder nur die Anzahl der gelesenen Bytes oder ein gecastetes Byte aus dem Inhalt des Byte-Puffers zurück ;). Wäre dieser Puffer ein Int-Array, würden Speicherhersteller nur mehr Umsatz machen. Programmtechnischen Nutzen (z.B. Geschwindigkeit) hätte man jedoch keinen.
Und so irrelevant ist's in Sachen Arrays und sonstigen Puffern mit der Länge des Datentyps nun auch nicht. Ihr würdet euch wundern, wenn eine 8MB-Datei plötzlich 32MB Speicher braucht. Und wo wir schon bei Verschwendung sind...
Die Klasse BitSet wäre dann wohl auch überflüssig? Hidden evils of Java's boolean array (boolean[]) - Engineering Chronon
Also zumindest würde ich überall dort Standardtypen verwenden, wo es zunächst nicht auf die Bitsize ankommt. In Java und anderen Programmierspachen sind vorzeichenbehaftete 4-Byte-Ganzzahlen dafür ein bewährter Kompromiss.
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R JDK installieren Gibt es ab 2019 überhaupt noch Java? Allgemeine Java-Themen 6
I Jsoup überprügen ob überhaupt was eingelesen wurde Allgemeine Java-Themen 10
P Zwei ArrayLists: Ohne die eine überhaupt anzurühren, wird sie verändert Allgemeine Java-Themen 2
M Datums vergleich klappt überhaupt nicht.. Allgemeine Java-Themen 4
S Regulärer Ausdruck tut überhaupt nichts Allgemeine Java-Themen 2
P Ist Java überhaupt das Richtige für mich? Allgemeine Java-Themen 7
P Wann kommt denn nun 1.5 überhaupt? Allgemeine Java-Themen 6
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
M Optimierung einer Methode (byte-Geraffel) Allgemeine Java-Themen 2
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
Thallius unsigned byte Allgemeine Java-Themen 18
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
kodela Datentypen byte als unsigned interpretieren Allgemeine Java-Themen 23
W String -> byte[] -> String - Sieht jemand was ich nicht sehe? Allgemeine Java-Themen 10
TheWhiteShadow 2D-Grafik GIF Library mit byte output Allgemeine Java-Themen 10
K Data Konverter - Probleme mit Byte[] Kodierung Allgemeine Java-Themen 3
kodela Byte Order Mark (BOM) bei readLine() ignorieren Allgemeine Java-Themen 5
A Byte zu String Allgemeine Java-Themen 4
RalleYTN Datentypen Unsignierter Byte zum signierten Byte Allgemeine Java-Themen 2
X Datentypen Byte geht nicht höher als 126 auch nicht mit casten? Allgemeine Java-Themen 22
R Byte Array Zeichensuche Allgemeine Java-Themen 6
M Null byte in verschiedenen charsets Allgemeine Java-Themen 2
S Byte Array welches in Laufzeit aufgelöst wird // Objekt Array Allgemeine Java-Themen 3
O Byte-Array zu String Allgemeine Java-Themen 7
D Decodierung von Mp3-byte[] Allgemeine Java-Themen 4
A ByteBuffer.get(byte[] dst,int offset,int length) Allgemeine Java-Themen 2
A RandomAccessFile.read(byte[] b) Allgemeine Java-Themen 9
P Datentypen String-Daten zu Byte-Zahlen konvertieren - Komme nicht weiter nach vielem versuchen :-/ Allgemeine Java-Themen 7
E Byte zu String & umgekehrt Allgemeine Java-Themen 3
B BufferedWriter in InputStream oder Zeichen-Stream in Byte-Stream Allgemeine Java-Themen 5
M Chart per byte[] in JSP anzeigen Allgemeine Java-Themen 4
E int in byte Allgemeine Java-Themen 6
R ArrayList byte[] abspeichern Allgemeine Java-Themen 4
S byte [] in string und zurück konvertieren Allgemeine Java-Themen 2
G byte ? : Allgemeine Java-Themen 7
E Byte-Array to String: Zeichenkaputt Allgemeine Java-Themen 11
R In einem Byte-Array nach einer gewissen Zahlenfolge suchen Allgemeine Java-Themen 7
hdi Speicherbelegung byte, short, int Allgemeine Java-Themen 8
J byte - hex - byte.. casten Allgemeine Java-Themen 8
R byte[] to String Konvertieren Allgemeine Java-Themen 14
A Input/Output Buffered Image zu Byte Array und zurück konvertieren Allgemeine Java-Themen 4
M byte array splitten Allgemeine Java-Themen 3
J Hex-String zu byte transformieren Allgemeine Java-Themen 7
T Zu doof für byte-Umrechnung ... Allgemeine Java-Themen 3
W CRC32 aus byte array Allgemeine Java-Themen 5
F byte[] aus einem BufferedImage Allgemeine Java-Themen 3
L byte -> byte[1] -> byte Allgemeine Java-Themen 2
P Einzelne Bits in einem Byte-Array setzen Allgemeine Java-Themen 2
Kr0e Synchronisieren: boolean,byte,char ? Allgemeine Java-Themen 2
S Überprüfung/Parsen eines Byte-Arrays Allgemeine Java-Themen 9
Semox Byte-Manipulation eines Bildes Allgemeine Java-Themen 7
Meldanor For-Schleifen - byte statt int? Allgemeine Java-Themen 11
C int zu byte cast - verständnis Allgemeine Java-Themen 3
R int to byte[] Array Allgemeine Java-Themen 4
MQue byte[] Array to Integer Allgemeine Java-Themen 4
MQue Byte to Int convertieren Allgemeine Java-Themen 2
R Double Werte aus byte[] auslesen Allgemeine Java-Themen 5
W Verwendung von byte Allgemeine Java-Themen 9
G zu lange Byte code dateien Allgemeine Java-Themen 6
G String in byte- Array Allgemeine Java-Themen 3
E Byte [] nach hex, dann nach dec Allgemeine Java-Themen 2
A Performance: byte[] in byte[][][] konvertieren Allgemeine Java-Themen 2
G 2 x byte zusammenkopieren Allgemeine Java-Themen 7
G byte nach int Allgemeine Java-Themen 3
foobar Object to byte[] ohne Serializable Allgemeine Java-Themen 6
data89 Die Größe eines Strings in Byte berechnen? Allgemeine Java-Themen 12
G Byte- List mit einem Iterator durchlaufen Allgemeine Java-Themen 5
W Konflikt byte->int, in.read->arraycopy Allgemeine Java-Themen 7
T "unsigned" byte[] -> BigInteger Allgemeine Java-Themen 2
F byte in hex-String oder: Wer hat in Mathe aufgepasst Allgemeine Java-Themen 3
T Socket Server Anwendung - Empfang eines Byte-Arrays Allgemeine Java-Themen 7
J NumberFormatException bei String->byte[] Allgemeine Java-Themen 12
ARadauer Blob aus byte Array erstellen? Allgemeine Java-Themen 3
T Object -> byte[] Allgemeine Java-Themen 5
G Byte[] zeichenweise lesen Allgemeine Java-Themen 4
G byte[] mit Strings füllen Allgemeine Java-Themen 2
B int -> byte Allgemeine Java-Themen 2
G file --> byte[] Allgemeine Java-Themen 7
E Problem beim Dateien kodieren ("Byte = Byte +1") Allgemeine Java-Themen 3
I String -> byte[] -> String Allgemeine Java-Themen 2
D byte nach integer? Allgemeine Java-Themen 4
MQue int in byte Allgemeine Java-Themen 18
G Maximalgröße von byte[] buffer Allgemeine Java-Themen 7
E String -> byte[] Allgemeine Java-Themen 6
C Byte[] to String Allgemeine Java-Themen 7
D datei in byte[]-array schreiben Allgemeine Java-Themen 6
D byte[] problem Allgemeine Java-Themen 3
MQue ArrayList in ein byte- Array Allgemeine Java-Themen 7
B ein spezielles Byte-Array sortieren Allgemeine Java-Themen 11
T OutputStream - Event bei Byte-Fluss Allgemeine Java-Themen 5
J byte-Array in Hashmap speichern? Allgemeine Java-Themen 3
S Problem beim Einlesen von byte-werten aus datei Allgemeine Java-Themen 2
J byte-Array als String übers http schicken Allgemeine Java-Themen 8
F List<String> zu byte[] Allgemeine Java-Themen 7
L byte vs. int Allgemeine Java-Themen 6
G Umwandlung Byte in Integer Allgemeine Java-Themen 12
N Byte-Code entschlüsseln (Bitmasks?) Allgemeine Java-Themen 3
R byte - string? Allgemeine Java-Themen 10
R Stream Byte für Byte durchgehen Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben