Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Kommt drauf an, wo die Variablen liegen.
Gehts um byte[] vs int[], dürfte byte[] Speichereffizienter sein.
Gehts nur um byte vs int, dürfte der Speicherverbrauch gleich sein.
Beides aber ohne Gewähr, da spielt die JVM mit rein, kann je nach Implementierung auch völlig anders sein...
Wie? Es wird immer wegen der Geschwindigkeit mit int gerechnet?? Steht in dem Link.
4. Post
Genaugenommen wird in einer Klasse der Wert gehalten und diese sind in einer TreeMap.
Beispiel wo ich casten muss:
Java:
for (byte i = (byte) (app + 1); i <= appHeader.size(); i++) {
Auch die short muss ich öfters mal casten:
Java:
public void onSw(boolean value) {
if (value) {
apps.setManualValue((short) 255);
} else {
apps.setManualValue((short) 0);
}
}
Daher die Frage, ob ich gleich einheitlich int nehmen soll ... aber möchte nicht unnötig Speicher verschwenden, da die Datenpunkte eventuell mal bis zu 1.000.000 betragen könnten.
byte wäre nur 1/4 von int
short wäre ein 1/2 von int
Aber wenn intern sowieso immer mit int gerechnet wird??
Aus diesem Grund werden embedded Systeme in der Regel in C/C++ programmiert. Diese Sprache ermöglicht es seinen Speicher genau selber zu bestimmen. Java ist für so etwas leider recht schlecht geeignet und man muss mit vielen Krücken leben wenn man es denn trotzdem unbedingt umsetzen will.
Zugriffsgeschwindigkeit auf Typen
Die JVM ist ein 32 Bit System. Aus diesem Grund sind Zugriffe auf Variablen mit einer Breite von 32 Bit am schnellsten. Somit ist der Zugriff auf Referenzen und int Variablen besonders schnell. float Variablen, sind Fliesskommazahlen und können nicht ganz so schnell verarbeitet werden. Die primitiven Datentypen unterscheidet man auch in Datentypen erster Klasse und Datentypen zweiter Klasse. Datentypen erster Klasse sind int, long, float und double. Für diese Datentypen liegt ein kompletter Satz an arithmetischen Funktionen vor, so dass Berechnung relativ zügig vonstattengehen. Die Datentypen zweiter Klasse boolean, byte, short und char hingegen haben keine arithmetische Funktionen. Für Berechnungen werden diese innerhalb der JVM in den int Typ gecastet und nach Abschluss zurück umgewandelt. Dies führt zu erheblichen Zeitverzögerungen. (siehe auch Variablen / Datentypen und Operatoren).