...
Type | Innhold | Default-verdi | Størrelse | Verdiområde |
---|---|---|---|---|
byte | Heltall | 0 | 8 | -128 til 127 |
short | Heltall | 0 | 16 | -32,768 til 32,767 |
int | Heltall | 0 | 32 | -2,147,483,648 til 2,147,483,647 |
long | Heltall | 0 | 64 | -9,223,372,036,854,775,808 til 9,223,372,036,854,775,807 |
float | Flyttall | 0.0 | 32 | +/- 1.4E-45 til +/- 3.4028235E+38 |
double | Flyttall | 0.0 | 64 | +/- 4.9E-324 til +/- 1.7976931348623157E+308 |
Heltall
Det vil sjeldent være noen noe grunn til å bruke noe annet enn int når man bruker heltall. Det vil i så fall være dersom man har bruk for virkelig store tall (se over), som kan løses med et long. Eller man har strenge krav til minnesparsommelighet og skal ha store mengder heltall i array uten å trenge hele verdiområdet til int. I så fall vil et short, eller byte være en mulighet.
Dersom vi vil konvertere mellom to heltall vil dette gå fint dersom tallet er innenfor verdiområdet til den nye typen.
i er innenfor verdiområdet tilbyte |
i er utenfor verdiområdet tilbyte
|
Trenger ikke caste "oppover" |
---|
Flyttall
Hva flyttall angår vil det vil sjeldent være grunn til å bruke noe annet enn double. Det som er viktig å bemerke seg er at et flyttall blir mindre og mindre nøyaktig desto større det blir.
Double også tre "merkelige" verdier som er gode å vite om:
NaN: "Not a number", NaN kan tildeles en double dersom vi prøver å utføre operasjoner som ikke lar seg gjøre. Se under, eksempel 1.
Infinity: "Uendelig", Infinity kan
De primitive talltypene i java har alle en "wrapper"-klasse. Disse klassene pakker inn den primitive talltypen, og gjør det mulig å representere den som et objekt. Dette gjøres ofte av kompilatoren og kalles da "autoboxing".
I java finnes det en Number-klasse som subklasses av de forskjellige wrapper-klassene. Number-klassen er abstrakt og et number-objekt vil alltid være en instans av en av subklassene.
...