Hvordan bruke Java-primitiver
Det finnes 8 primitive datatyper i Java, som alle har en fast størrelse og et definert verdifelt. De brukes til å opprette variabler og tildele dem individuelle tall, tegn eller logiske verdier. De 8 primitive datatypene i Java er boolean, byte, char, double, float, int, long og short.
Hva er Java-primitiver?
Som andre programmeringsspråk har Java ulike datatyper. I Java faller disse inn i to kategorier. Den første er referansetyper, som refererer til et objekt som kan defineres fritt, som strenger, matriser, klasser og grensesnitt. Deretter er det Java-primitiver. De har en fast størrelse som er den samme på tvers av plattformer. De har også sin egen wrapper-klasse, er uforanderlige og har et fast verdispekter. Java-primitiver brukes til å lage variabler for individuelle tall, tegn eller logiske verdier.
I Java finnes det 8 forskjellige primitive datatyper som først og fremst skiller seg fra hverandre med hensyn til hvilke verdier de lagrer. Det de alle har til felles, er at de kun kan inneholde én enkelt verdi. Siden noen av dem brukes i lignende situasjoner, kan vi dele Java-primitivene videre inn i fire kategorier:
- Logisk datatype (boolean)
- Integrert datatype (byte, short, int og long)
- Flytende desimaltall (float og double)
- Tegn datatype (char)
Siden de lagres direkte i stakken, er størrelsen deres spesielt viktig. Vi kommer tilbake til dette senere i denne veiledningen. Java-primitiver er også viktige fordi Java er et statisk typet språk. Når du lager et program, må du derfor allerede definere hvilken datatype en variabel er, ellers vil du få feilmeldinger. Her er en oversikt over Java-primitiver:
| Datatype | Størrelse | Verdifelt | Standardverdi | Wrapper-klasse |
|---|---|---|---|---|
| boolean | 1 bit | sant eller usant | falsk | java.lang.Boolean |
| byte | 8 bits | -128 til 127 | 0 | java.lang.Byte |
| kort | 16 bits | -32768 til 32767 | 0 | java.lang.Short |
| int | 32 bits | -2147483648 til 2147483647 | 0 | java.lang.Integer |
| lang | 64 bits | -9223372036854775808 til 9223372036854775807 | 0 | java.lang.Long |
| float | 32 | opptil 7 desimaler | 0,0 | java.lang.Float |
| dobbel | 64 bits | opptil 16 desimaler | 0,0 | java.lang.Double |
| char | 16 bits | **’\u0000’ (dvs. 0) til ‘\uffff’ (tilsvarer 65535) | ‘\u0000’ | java.lang.Character |
Hvordan bruke Java-primitivet boolean
En Java Boolean er også kjent som en sannhetsverdi. Det er den enkleste Java-primitivtypen, da den bare har to mulige verdier: «true» eller «false». Den brukes når det er behov for en logisk operand, og er den eneste logiske datatypen. I uttrykk står de to mulige verdiene vanligvis for en betingelse som enten er oppfylt (true) eller ikke (false). Hvis du ikke tilordner en verdi til en Boolean, vil den ha standardverdien false. Boolean kan kombineres med Boolean-operatorer i Java som AND og OR. Tilordning av en verdi til en Boolean ser slik ut:
public class Main {
public static void main(String[] args) {
boolean x = true;
System.out.println(x);
}
}javaHvis du bruker Java-kommandoen System.out.prinln til å initialisere en utdata, vil utdataene se slik ut:
truejavabyte
byte er den minste datatypen blant heltallstypene. Den har et svært begrenset verdifelt, nemlig fra -128 til 127. Men den bruker bare 8 bit minne. Faktisk har den fått navnet sitt fra det faktum at 8 bit utgjør én byte. Hvis du bare arbeider med et svært begrenset verdifelt, kan du deklarere en byte slik:
public class Main {
public static void main(String[] args) {
byte x = 101;
System.out.println(x);
}
}javaResultatet ser slik ut:
101javakort
short er dobbelt så stort som byte, noe som betyr at det også er en av de mindre brukte Java-primitivene. Men hvis byte er for lite og int er for stort, kan short være den heltallstypen du leter etter. Slik deklarerer du den:
public class Main {
public static void main(String[] args) {
short x = -27412;
System.out.println(x);
}
}javaResultatet ser slik ut:
-27412javaint
int er den mest brukte av heltallstypene. Den har et svært stort verdifelt og sparer likevel plass. int er en toers komplementverdi og brukes også ofte til andre formål. Slik bruker du den:
public class Main {
public static void main(String[] args) {
int x = 14;
int y = 3;
int z = x + y;
System.out.println(x + " + " + y + " = " + z);
}
}javaResultatet ser slik ut:
14 + 3 = 17javalang
long er en utvidelse av int og kan inneholde enda lengre tall. int vil være tilstrekkelig i de fleste tilfeller, men hvis du ønsker å deklarere long, kan du gjøre det på følgende måte:
public class Main {
public static void main(String[] args) {
long x = 47;
System.out.println(x);
}
}javaHer er resultatet:
47javaflyte
Det finnes to Java-primitiver for å representere delmengder av rasjonelle tall. float er den minste av de to flytende datatypene og bruker 32 bit. Den kan vise opptil 7 desimaler. Den er imidlertid ikke særlig presis og brukes derfor ikke så ofte. Hvis du bestemmer deg for å bruke den, kan du deklarere den som følger:
public class Main {
public static void main(String[] args) {
float x = 7.22f;
System.out.println(x);
}
}javaMerk at du må sette inn en liten eller stor bokstav «f» etter tallet for å fortelle datamaskinen at det er et flytende tall og ikke et dobbelt tall. F-en vises ikke i utdataene:
7.22javadobbel
Den andre flytende datatypen er double. Den er betydelig mer presis enn float, men gir likevel ikke helt eksakte resultater. Hvis du leter etter et alternativ, kan du bruke klassen BigDecimal. Hvis double passer til dine formål, kan du deklarere den slik:
public class Main {
public static void main(String[] args) {
double x = 7.2252;
System.out.println(x);
}
}javaMerk at det ikke er noen ekstra bokstav her. Utdataene ser slik ut:
7.2252javakarakter
char brukes til å representere Unicode-tegn. Det går fra ‘\u0000’ til ‘\uffff’, altså fra 0 til 65535. Datatypen character kan representere nesten alle europeiske og asiatiske tegn. Den bruker 16 bit minne. Verdiene til denne Java-primitivtypen angis i enkelt anførselstegn. Slik ser det ut i koden:
public class Main {
public static void main(String[] args) {
char x = '&';
System.out.println(x);
}
}javaResultatet ser slik ut:
&java