Witam, jakis czas tematu całkiem niechacy wpadłem na watek o Javie w którym autor pytał jaki jest sens uzywania innych typow od int (numerycznych oczywiscie) skoro w bajtkodzie i tak przed obliczeniami zmienne sa zamieniane na typ int (czyli nie ma dyrekty typu d_store, f_store tylko jest i_store).
A wiec moje pytanie do ekspretow, czy faktycznie tak to jest? Czyli ze np. zmienna typu short tak naprawde zajmuje tyle samo miejsca co inna zmienna typu int?
0
0
Są przecież instrukcje JVM operujące na short
ach:
sipush
(wrzuca short
a na stos),
i2s
(dokonuje konwersji int->short
),
saload
/sastore
(do operacji na tablicach typu short
).
0
Zmienna typu short zajmuje 16-bitów, natomiast int zajmuje aż 32-bitów, Jeżeli nie masz pewności przy wyliczeniach, że coś jest przeliczane na int lub short, możesz stosować takie coś:
short sum =(short) 2 + 5;
a tak to często po co wykorzystywac inta, jak wystarczy short.
ale to raczej nie ma sensu,
tabela zmiennych:
Typ | Rozmiar | Zakres |
---|---|---|
char | 16-bit | od Unicode 0 do Unicode 216-1 |
byte | 8-bit | od -128 do 128 |
short | 16-bit | od -32,768 do 32,767 |
int | 32-bit | od -2,147,483,648 do 2,147,483,647 |
long | 64-bit | od -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807 |
Tyle starczy :P
0
Ok czyli rozumiem ze jednak zmienne maja rozny rozmiar w pamieci. Dzieki wielkie za rozwianie watpliwosci ;)