Sådan bruges Java-primitiver
Der er 8 primitive datatyper i Java, som alle har en fast størrelse og et defineret værdiområde. De bruges til at oprette variabler og tildele dem individuelle tal, tegn eller logiske værdier. De 8 Java-primitiver er boolean, byte, char, double, float, int, long og short.
Hvad er Java-primitiver?
Ligesom andre programmeringssprog har Java forskellige datatyper. I Java falder disse i to kategorier. Den første er referencetyper, som henviser til et objekt, der kan defineres frit, såsom strenge, arrays, klasser og grænseflader. Derefter er der Java-primitiverne. De har en fast størrelse, der er den samme på tværs af platforme. De har også deres egen wrapper-klasse, er uforanderlige og har et fast værdiområde. Java-primitiver bruges til at oprette variabler for individuelle tal, tegn eller logiske værdier.
I Java findes der 8 forskellige 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 situationer, kan vi yderligere opdele Java-primitiverne i fire kategorier:
- 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 vejledning. Java-primitiver 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å fejlmeddelelser. Her er en oversigt over Java-primitiverne:
| Datatype | Størrelse | Værdiområde | Standardværdi | 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 sandhedsværdi. 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 betingelse, der enten er opfyldt (true) eller ikke (false). Hvis du ikke tildeler en værdi til en Boolean, vil den have standardværdien false. Boolean kan kombineres med Boolean-operatorer 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);
}
}javaHvis du bruger Java-kommandoen System.out.prinln til at initialisere en output, vil outputtet se sådan ud:
truejavabyte
byte er den mindste datatype blandt heltalstyperne. Den har et meget begrænset værdiområde, nemlig fra -128 til 127. Men den bruger kun 8 bit hukommelse. 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ærdiområ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);
}
}javaResultatet ser således ud:
101javakort
short er dobbelt så stor som byte, hvilket betyder, at det også er en af de mere sjældent anvendte Java-primitiver. Men hvis byte er for lille og int er for stor, kan short være den heltalstype, du leder efter. Sådan deklarerer du den:
public class Main {
public static void main(String[] args) {
short x = -27412;
System.out.println(x);
}
}javaResultatet ser således ud:
-27412javaint
int er den mest anvendte af de heltalstyper. Den har et meget stort værdiområde og sparer samtidig plads. int er en toers komplementværdi 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);
}
}javaResultatet ser således ud:
14 + 3 = 17javalang
long er en udvidelse af int og kan indeholde endnu længere tal. int er tilstrækkeligt 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);
}
}javaHer er resultatet:
47javaflyde
Der er to Java-primitiver til at repræsentere delmængder 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);
}
}javaBemærk, at du skal indsætte et lille eller stort ‘f’ efter tallet for at fortælle computeren, at det er et float og ikke et double. F’et vises ikke i outputtet:
7.22javadobbelt
Den anden flydende datatype er double. Den er betydeligt mere præcis end float, men giver stadig ikke helt nøjagtige resultater. Hvis du leder efter et alternativ, kan du bruge klassen BigDecimal. 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);
}
}javaBemærk, at der ikke er noget ekstra bogstav her. Outputtet ser således ud:
7.2252javachar
char bruges til at repræsentere Unicode-tegn. Det går fra ‘\u0000’ til ‘\uffff’, altså fra 0 til 65535. Tegn-datatypen kan repræsentere næsten alle europæiske og asiatiske tegn. Den bruger 16 bit hukommelse. Værdierne for denne Java-primitive angives i enkelt anførselstegn. Sådan ser det ud i koden:
public class Main {
public static void main(String[] args) {
char x = '&';
System.out.println(x);
}
}javaResultatet ser således ud:
&java