Der er 8 primitive datatyper i Java, som alle har en fast størrelse og et defineret vær­di­om­rå­de. De bruges til at oprette variabler og tildele dem in­di­vi­du­el­le tal, tegn eller logiske værdier. De 8 Java-pri­mi­ti­ver er boolean, byte, char, double, float, int, long og short.

Hvad er Java-pri­mi­ti­ver?

Ligesom andre pro­gram­me­rings­sprog har Java for­skel­li­ge datatyper. I Java falder disse i to ka­te­go­ri­er. Den første er re­fe­ren­ce­ty­per, som henviser til et objekt, der kan defineres frit, såsom strenge, arrays, klasser og græn­se­fla­der. Derefter er der Java-pri­mi­ti­ver­ne. De har en fast størrelse, der er den samme på tværs af platforme. De har også deres egen wrapper-klasse, er ufor­an­der­li­ge og har et fast vær­di­om­rå­de. Java-pri­mi­ti­ver bruges til at oprette variabler for in­di­vi­du­el­le tal, tegn eller logiske værdier.

I Java findes der 8 for­skel­li­ge primitive datatyper, der primært adskiller sig fra hinanden med hensyn til, hvilke værdier de gemmer. Det, de alle har til fælles, er, at de kun kan indeholde en enkelt værdi. Da nogle af dem bruges i lignende si­tu­a­tio­ner, kan vi yder­li­ge­re opdele Java-pri­mi­ti­ver­ne i fire ka­te­go­ri­er:

  • Logisk datatype (boolean)
  • Integral datatype (byte, short, int og long)
  • Flydende datatype (float og double)
  • Tegn datatype (char)

Da de gemmes direkte i stakken, er deres størrelse af særlig betydning. Vi vil diskutere dette nærmere senere i denne vej­led­ning. Java-pri­mi­ti­ver er også vigtige, fordi Java er et statisk typet sprog. Så når du opretter et program, skal du allerede definere, hvilken datatype en variabel er, ellers vil du få fejl­med­del­el­ser. Her er en oversigt over Java-pri­mi­ti­ver­ne:

Datatype Størrelse Vær­di­om­rå­de Stan­dard­vær­di Wrapper-klasse
boolean 1 bit true eller false 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 bits op til 7 decimaler 0,0 java.lang.Float
dobbelt 64 bits op til 16 decimaler 0,0 java.lang.Double
char 16 bits **’\u0000’ (dvs. 0) til ‘\uffff’ (svarer til 65535) ‘\u0000’ java.lang.Character

Sådan bruges den primitive booleske værdi i Java

En Java Boolean er også kendt som en sand­heds­vær­di. Det er den mest enkle Java-primitive, da den kun har to mulige værdier: ‘true’ eller ‘false’. Den bruges, når der er behov for en logisk operand, og er den eneste logiske datatype. I udtryk står dens to mulige værdier normalt for en be­tin­gel­se, der enten er opfyldt (true) eller ikke (false). Hvis du ikke tildeler en værdi til en Boolean, vil den have stan­dard­vær­di­en false. Boolean kan kom­bi­ne­res med Boolean-ope­ra­to­rer i Java som AND og OR. Tildeling af en værdi til en Boolean ser således ud:

public class Main {
	public static void main(String[] args) {
		boolean x = true;
		System.out.println(x);
	}
}
java

Hvis du bruger Java-kom­man­do­en System.out.prinln til at ini­ti­a­li­se­re en output, vil outputtet se sådan ud:

true
java

byte

byte er den mindste datatype blandt hel­tals­ty­per­ne. Den har et meget begrænset vær­di­om­rå­de, nemlig fra -128 til 127. Men den bruger kun 8 bit hukom­mel­se. Faktisk har den fået sit navn fra det faktum, at 8 bit udgør en byte. Hvis du kun arbejder med et meget begrænset vær­di­om­rå­de, kan du deklarere en byte på denne måde:

public class Main {
	public static void main(String[] args) {
		byte x = 101;
		System.out.println(x);
	}
}
java

Re­sul­ta­tet ser således ud:

101
java

kort

short er dobbelt så stor som byte, hvilket betyder, at det også er en af de mere sjældent anvendte Java-pri­mi­ti­ver. Men hvis byte er for lille og int er for stor, kan short være den hel­tals­ty­pe, du leder efter. Sådan de­kla­re­rer du den:

public class Main {
	public static void main(String[] args) {
		short x = -27412;
		System.out.println(x);
	}
}
java

Re­sul­ta­tet ser således ud:

-27412
java

int

int er den mest anvendte af de hel­tals­ty­per. Den har et meget stort vær­di­om­rå­de og sparer samtidig plads. int er en toers kom­ple­ment­vær­di og bruges også ofte til andre formål. Sådan bruges 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);
	}
}
java

Re­sul­ta­tet ser således ud:

14 + 3 = 17
java

lang

long er en udvidelse af int og kan indeholde endnu længere tal. int er til­stræk­ke­ligt i de fleste tilfælde, men hvis du vil deklarere long, kan du gøre det på følgende måde:

public class Main {
	public static void main(String[] args) {
		long x = 47;
		System.out.println(x);
	}
}
java

Her er re­sul­ta­tet:

47
java

flyde

Der er to Java-pri­mi­ti­ver til at re­præ­sen­te­re del­mæng­der af rationale tal. float er den mindste af de to flydende datatyper og bruger 32 bit. Den kan vise op til 7 decimaler. Den er dog ikke særlig præcis og bruges derfor ikke så ofte. Hvis du beslutter dig for at bruge 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);
	}
}
java

Bemærk, at du skal indsætte et lille eller stort ‘f’ efter tallet for at fortælle com­pu­te­ren, at det er et float og ikke et double. F’et vises ikke i outputtet:

7.22
java

dobbelt

Den anden flydende datatype er double. Den er be­ty­de­ligt mere præcis end float, men giver stadig ikke helt nøjagtige re­sul­ta­ter. Hvis du leder efter et al­ter­na­tiv, kan du bruge klassen Big­De­ci­mal. Hvis double passer til dine formål, kan du deklarere den på følgende måde:

public class Main {
	public static void main(String[] args) {
		double x = 7.2252;
		System.out.println(x);
	}
}
java

Bemærk, at der ikke er noget ekstra bogstav her. Outputtet ser således ud:

7.2252
java

char

char bruges til at re­præ­sen­te­re Unicode-tegn. Det går fra ‘\u0000’ til ‘\uffff’, altså fra 0 til 65535. Tegn-datatypen kan re­præ­sen­te­re næsten alle eu­ro­pæ­i­ske og asiatiske tegn. Den bruger 16 bit hukom­mel­se. Værdierne for denne Java-primitive angives i enkelt an­før­sels­tegn. Sådan ser det ud i koden:

public class Main {
	public static void main(String[] args) {
		char x = '&';
		System.out.println(x);
	}
}
java

Re­sul­ta­tet ser således ud:

&
java
Gå til ho­ved­me­nu­en