"La larghezza di un tipo intero non deve essere pensato come la quantità di stoccaggio consuma,
una JVM può memorizzare il tipico Java 16 bit short
in 32 bit su 32-bit implementazioni per migliorare le prestazioni ..
ma piuttosto come il comportamento definisce per le variabili e le espressioni di quel tipo. l'ambiente di runtime Java è fre e usare qualsiasi dimensione che vuole, a patto che i tipi si comportino come li hai dichiarati ".
.. ma per uno sviluppatore Java, sarà comporterà come un 16 bit firmato intero complemento a due, a prescindere da come è fisicamente memorizzati nel computer.
Questo ha perfettamente senso. Vuoi che il tuo programma funzioni su qualsiasi JVM, quindi tutte le JVM devono trattare il tuo programma e i suoi interi allo stesso modo. Ma il modo in cui la JVM viene implementata non ha importanza per uno sviluppatore Java, quindi consente ottimizzazioni specifiche per l'architettura.
Come note @BasilBourque nei commenti: Questa è l'idea di base dietro tutte le specifiche per il linguaggio Java e per JVM: Definire i comportamenti richiesti, ma lasciare i dettagli di implementazione all'implementatore. Ci sono state molte implementazioni di Java nel corso degli anni, tutte si comportano allo stesso modo, ma variano in modo drammatico rispetto a ciò che è "sotto il cofano".
Java definisce quattro tipi interi, ad esempio long, int, short, byte. Quindi non essere confuso con i tipi interi e int. In java int è di 32 bit. – zombie
Sì, ne sono consapevole, ma non sono in grado di capire cosa significhi realmente quella frase. Per favore, mi spieghi che? –
@AsteriskNinja Quindi stai dicendo che quando modifichiamo ad esempio da int a long, java decide di usare una larghezza lunga che è di 64 bit? –