Datentypen Tipps, Ratschläge erwünscht bzgl. Datentyp bestimmen über Wertebereich

GabberBambi

Neues Mitglied
Guten Morgen erstmal an dieser Stelle .. 🙂

Ich weißt gar nicht so genau wie ich mein Anliegen formulieren soll (denke nämlich, dass es wahrscheinlich wieder mal mehr als simpel ist), aber ich versuche es einfach mal.
😳


Seit vier Wochen ca. befasse ich mich relativ intensiv mit der Programmierung in Java. Dies kam durch einen (wahrscheinlich nur aus Spaß gemeinten) Vorschlag meines Freundes, weil ich nicht genau wusste in welchem Bereich der IT ich mich zukünftig bewegen wollen würde. Da er selber auch Fachinformatiker für Systemintegration ist, merkte ich, dass seins nicht meins ist ... nun denn .. lange Rede - kurzer Sinn:

Mir liegt die Programmierung wirklich sehr (nicht nur zu meinem eigenen Erstaunen!) und bin auch gar nicht mehr zu bremsen was das angeht .. ABER .. auch wenn ich bereits mit Arrays, Schleifen, GUI, ect super zurecht komme und dies auch meine Noten beweisen, so will mir eine Sache nicht in den Kopf:

Ich kann mir die Wertebereiche zum verrecken nicht merken!!!
:bahnhof:
Ich kann die Datentypen inkl. der Bits, aber da hört es komischer Weise dann auch auf.

Meine Frage daher an euch :

Gibt es ggf. so etwas wie ein Listing wie ich heraus finden kann, ob es nun short, byte, int ... ist oder ob ich einen Überlauf riskiere???
Natürlich kann ich im Zweifel auch immer einen größeren Datentyp nehmen, aber das soll ja nicht Sinn und Zweck sein!
WILL ES JA VERSTEHEN & BEHERRSCHEN!

Wäre daher sehr dankbar, wenn ihr mir hier irgendwie weiterhelfen könntet!!!

Danke schon mal (auch fürs "nicht" lachen!
:bae🙂
 
Regeln dafür gibt es keine, es kommt immer darauf an für was die Variable verwendet wird.
Hier muss sich der Programmierer für das richtige entscheiden.

Persönlich habe ich den Datentyp "short" glaube ich noch nie bewusst verwendet.
"byte" wird von mir meist nur in Verwendung mit Dateien und Encoding verwendet und nicht für Zähler oder ähnliches.
Bleiben also nur noch "int" und "long" sowie und "double".
int: eigentlich immer wenn ich weiß der absolute Wert kann nicht größer als 2 Mrd werden (was wahrscheinlich in 90% der fälle so ist)
long: immer dann wenn int nicht mehr ausreicht
double: für alle Kommazahlen
(float: wird von mir nur selten verwendet, da double genauer ist wenn ich schon eine kommazahl habe hätte ich es gerne genau)

Soll jetzt nicht heißen das alles außer "int", "long", "double" nicht benutzt werden sollte, aber ich finde solange es keine performancekritischen und speicherlastigen Anwendungen sind sollte einem das keine Sorgen bereiten.
Bei einem Refactoring kann man immer noch kontrollieren ob ein anderer Datentyp nicht besser geeignet wäre.
 
Ich benutze gelegentlich noch char für einzelne Buchstaben. Char ist unsigned bis ca. 65.000.
Aber sonst hat mein Vorredner schon alles gesagt. Für Ganzzahlen int, für Große Zahlen long und für Kommazahlen double.

Für ein Listing guck mal in den Wikipediaartikel "Java-Sytax" unter "Primitive Datentypen".
 
double ist für Gleitkommazahlen bequem, weil akzeptiert (niemand fragt nach, warum man es denn nicht nehme).

Fast immer reicht float - frag mal einen Techniker, mit wie vielen signifikanten Stellen ("geltenden Ziffern") er denn seine Messwerte liefern kann.

Moderne Prozessoren können Rechnungen mit float (v.a. Arrays) mitunter stark beschleunigen (AVX, oder Berechnungen mittels GPU), vmtl. verwendet Java dies aber nicht; ob float-Rechnungen in der FPU des Prozessors schneller als double sind, weis ich nicht. Zumindest brauchen sie nur den halben Platz und es passen mehr in den Datencache der CPU.
 
Danke an euch und die schnellen Tipps!
Werde sie nun in meine Sammlung übertragen, welche ich mir eigens für Java angelegt habe (natürlich handschriftlich damit es auch besser hängen bleibt!)!!!

Thx a lot :applaus: :toll:
 
Auch wenns ein bisschen spät ist, aber bei Kommazahlen sollte man auch immer erst überlegen, ob int nicht die bessere Wahl ist. Bestes Beispiel sind Geldbeträge. Diese sollte man immer in Cent als int speichern, da Rundungsfehler dann ausgeschlossen sind. Denn 0,1 kann man weder mit float noch mit double genau speichern.

lg Kevin
 
Zuletzt bearbeitet:

Zurück
Oben