Java Wie Datatype "Byte" kennzeichnen bzw. die Vorteile von Byte?

T

Tersus

Gast
Guten Abend,

ich suche eine Klasse, in der sich die Uhrzeit, und nichts anderes, festhalten läßt. Da ich nichts gefunden habe, bastle ich mir also selbst schnell eine Klasse.
Für Stunde und Minute verwende ich nun byte, aber es ist extrem nervig, jede Zahl casten zu müssen. :rolleyes:

Ist byte wirklich sparsamer als int? Oder wird ein int wie 24 intern speicherschonend gespeichert? Wenn ja, wofür braucht man dann überhaupt byte und short?

Habt ihr andere Vorschläge für das Speichern der Uhrzeit? Danke schon mal!


Grüße
 
Obs sparsamer ist, kommt auf die Implemetierung der JVM an. Die Standard-JVM speichert alle Datentypen in 32 oder 64 Bit ab. Ergo, könnte Byte/Short zu verwenden, sogar langsamer sein (da von 1 Byte/2Byte auf 4 Byte und zurück).

Byte und Short verwendet man nur, wenn man die Daten in I/O-Operations verwendet. Z.B die Byte-Repräsentation der Daten direkt in eine Datei oder Netzwerk-Stream. Dort ist der Byte-Typ dann auch ein byte groß und Short nur 2 Byte.

In C# sieht das meines Wissens nach anders aus. Dort belegt ein Byte auch nur ein byte im Speicher (ich habe das irgendwann mal kurz mit nem Memory-Profiler getestet, aber nicht weiterverfolgt/in der Dokumenation nachgeschalgen, deshalb bin ich mir da nicht so ganz sicher)
 
Zuletzt bearbeitet:
"ich suche eine Klasse, in der sich die Uhrzeit, und nichts anderes, festhalten läßt."

Wieso nutzt du nicht JodaTime?
 
Darkspire schrieb:
"ich suche eine Klasse, in der sich die Uhrzeit, und nichts anderes, festhalten läßt."

Wieso nutzt du nicht JodaTime?

Wenn er die Uhrzeit festhalten will kann der einfach einen long speichern: System.currentTimeMillis(); ;-) Kommt auf den use-Case an.
 
Hellblazer schrieb:
In C# sieht das meines Wissens nach anders aus. Dort belegt ein Byte auch nur ein byte im Speicher (ich habe das irgendwann mal kurz mit nem Memory-Profiler getestet, aber nicht weiterverfolgt/in der Dokumenation nachgeschalgen, deshalb bin ich mir da nicht so ganz sicher)

Ich denke kaum das in C# ein Byte nur ein Byte verwendet. Nicht einmal in C wird für ein Byte IMMER ein Byte verwendet. Dies weil durch Alignment der Zugriff vereinfacht/beschleunigt werden kann. Es würde mich also wundern, wenn C# das anders machen würde.

Zur Frage wozu Byte gut sein kann. Byte wird oft für masking verwendet dann kan mit Bitoperatoren verglichen werden, welche Werte aktiv sind usw... aber in Java ist das auch eher unüblich.
 
CurrentTimeInMillis kann ich nicht verwenden, da dort noch andere Dinge, wie Datum gespeichert werden. :-/
Ich versuche es mal mit JodaTime.

Grüße
 
Zurück
Oben