Hi Leute,
der primitive Datentyp byte kann Zahlen von -2^7 bis 2^7 -1 speichern, int ja -2^31 bis 2^31 -1, da byte 8 bit zur verfügung hat und int 32.
AUch wenn diese Frage absolut minimalistisch ist:
Ist es speichereffizienter in einer for schleife statt dem üblichen int bytezu verwenden?
Ich spreche hier von for schleifen, wo ich die Anzahl der schleifen exakt weiß wie
und nicht von schleifen, wo i eine beliebige größe haben kann wie
Natürlich gehe ich auch davon aus, dass i niemals einen Wert von > byte erreichen kann(oder short , je nachdem).
Eine Anschlussfrage ist, ob es sich lohnt, wenn i in der Schleife benutzt wird und zum Beispiel ein Methode n-mal aufgerufen wird mit einem Paramater int wie z.B. bei PreparedStatements.
Bsp:
Es wird ja dann i, was ein byte ist, nach int gecasted, oder? Gehen wir davon aus, dass byte statt int wirklich speicher-effizienter ist, so stellt sich hier die Frage:
Ist die Effizenz des Speicherns nichtig, da eine Cast dies aufhebt(keine Ahnung, ob ein Cast mehr Speicher verbraucht als ein Zahl, die schon immer ein Int war oder ob dieser Vorgang Rechenleistung verbraucht).
Bitte vergesst nicht, ich weiß, dass ich mich hier um bits und bytes streite, mich interessiert nur, ob dies ein korrekter Gedankengang ist oder aber ich falsch liege auf Grund von Java Internen Mechanismen.
Mfg
mel
der primitive Datentyp byte kann Zahlen von -2^7 bis 2^7 -1 speichern, int ja -2^31 bis 2^31 -1, da byte 8 bit zur verfügung hat und int 32.
AUch wenn diese Frage absolut minimalistisch ist:
Ist es speichereffizienter in einer for schleife statt dem üblichen int bytezu verwenden?
Ich spreche hier von for schleifen, wo ich die Anzahl der schleifen exakt weiß wie
Java:
for(int i = 0 ; i < 10 ; ++i)
und nicht von schleifen, wo i eine beliebige größe haben kann wie
Java:
for(int i = 0 ; i < liste.length ; ++i)
Natürlich gehe ich auch davon aus, dass i niemals einen Wert von > byte erreichen kann(oder short , je nachdem).
Eine Anschlussfrage ist, ob es sich lohnt, wenn i in der Schleife benutzt wird und zum Beispiel ein Methode n-mal aufgerufen wird mit einem Paramater int wie z.B. bei PreparedStatements.
Bsp:
Java:
for(byte i = 0 ; i < 3 ; ++i){
updateAllMaxMemberStatement.setString(i+1, data[i]);
deletePupilFromAllStandsStatement.setString(i+1, data[i]);
deleteSinglePupilStatement.setString(i+1, data[i]);
}
Ist die Effizenz des Speicherns nichtig, da eine Cast dies aufhebt(keine Ahnung, ob ein Cast mehr Speicher verbraucht als ein Zahl, die schon immer ein Int war oder ob dieser Vorgang Rechenleistung verbraucht).
Bitte vergesst nicht, ich weiß, dass ich mich hier um bits und bytes streite, mich interessiert nur, ob dies ein korrekter Gedankengang ist oder aber ich falsch liege auf Grund von Java Internen Mechanismen.
Mfg
mel
Zuletzt bearbeitet: