Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

I java opererer vi med seks primitive talltyper med forskjellige egenskaper, som brukes forskjellig deretter. Det er 4 heltalls-typer og 2 flyttalls-typer. Forskjellen på disse innad er antall bit tallet representeres ved, og nøyaktighet av de. Under er en tabell som gir en liten indikasjon på typenes De mest brukte typene er int og double. Det er viktig å merke seg at tallene man opererer med i java ikke er ideelle matematiske tall, men er representert med et begrenset antall bit, noe som kan føre med seg uønskede egenskaper.

TypeInnholdDefault-verdiStørrelseVerdiområde
byteHeltall08-128 til 127
shortHeltall016-32,768 til 32,767
intHeltall032-2,147,483,648 til 2,147,483,647
longHeltall064-9,223,372,036,854,775,808 til 9,223,372,036,854,775,807
floatFlyttall0.032+/- 1.4E-45 til +/- 3.4028235E+38
doubleFlyttall0.064+/- 4.9E-324 til +/- 1.7976931348623157E+308

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.

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 som brukes. Number-klassen er abstrakt og et number-objekt vil alltid være en instans av en av subklassene.

 
Bildet er hentet fra Oracles sider. 

Først en tabell som beskriver egenskapene ved de primitive talltypene vi finner i java:

Wrapper-klassene

Tilfeller når man kan komme til å ville ønske bruke wrapper-klassene:

  • Dersom vi ønsker å sende en klasse som et argument
  • Bruke konstanter klassen holder, som f.eks. MIN_VALUE/MAX_VALUE for den primitive typen
  • Bruke klassemetoder for å konvertere mellom de forskjellige primitive typene

...