En datatyp säger till datorn antal bitar att använda och hur data ska hanteras för att undvika fel. Det finns två varianter av datatyper i Java:
- Primitiva
- Referens eller icke primitiva
Primitiv datatyp i Java
Varje datatyp tar upp en viss mängd av lagringsceller i minnet och för att använda rätt lagringscellerna ska man kunna datatyper så att program använder just det specifika mängden av minnesplatser och inte annat.
Primitiva datatyp i Java kan grupperas i fyra:
- Heltal: byte, short, integer, long
- Decimaltal: float och double
- Boolesk datatyp: true eller false
- Tecken: char
Heltal i Java
Datatyp | Bitstorlek | Min-värde | Max-värde |
byte | 8 | –128 | 127 |
short | 16 | –32 768 | 32 767 |
int | 32 | –2 147 483 648 | 2 147 483 647 |
long | 64 | ≈ –9 * 1018 | ≈ 9 * 1018 |
Decimaltal i Java
Datatyp | Bitstorlek | Min-värde | Max-värde |
float | 32 | ≈ –3.4 * 1018 | ≈ 3.4 * 1018 |
double | 64 | ≈ –1.7 * 10308 | ≈ 1.7 * 10308 |
Boolean datatyp i Java
- True som kan vara en etta
- False som kan vara en nolla
Tecken och text i Java
- char (character) lagras tecken exempelvis ’a’ eller ’m’
- string är en uppsamling av flera char och där lagras ett helt ord, eller en hel mening. På svenska sträng.
Datatypen char lagrar olika sorts tecken exempelvis små bokstäver, stora bokstäver, och andra tecken. För att lagra ett tecken i ett Javaprogram använder man 2 byte i primära minnet. När man lagrar tecken i Java, utgår man från Unicode teckenlistan. Den här listan innehåller ett stort antal tecken som organiseras i en viss ordning därmed varje tecknet får en ordningsnummer.
När man lagrar tecken så lagrar man tecknets kod. Till exempel tecknet A har ordningsnummer 65 och när man lagrar A, lagrar man 65. I Unicode-listan finns även olika siffror som uppfattas vara tecken och inte numeriska siffror såsom siffran 0 (inte heltal 0). Siffran 0 finns i listan på platsen 48. Det finns också speciella tecken i Unicode-listan som inte kan skrivas ut i ett Javaprogram exempelvis siffran 7 och några andra till.
I vissa sammanhang använder man hexadecimala koder för att representera olika tecken. Till exempel ordningsnummer 65 (A) kan skrivas hexadecimalt som 41 och i ett Javaprogram: char t1 = ’u\0041’;
Heltal noll, siffran noll och nolltecknet
- Heltal 0 lagras som sådan i minnet. Till exempel
- int nollTal = 0;
- Siffran 0 lagras i minnet som heltalet 48 (teckens ordningsnummer)
- Nolltecknet är det tecken som har ordningsnummer 0 i Unicode-listan. Både heltal noll och nolltecknet lagras som heltal 0, men de lagras som olika datatyper därmed hanteras de på olika sätt.
Specialtecken
Speciella tecken som nyradstecknet, tabbtecknet, backstegstecknet, returtecknet har också sina koder såsom nyradstecknet som har ordningsnummer 10 och som skulle kodas i ett Javaprogram så här: char nyrad = 10;
Men det kan vara ibland förvirrande när man glömmer koden och ett annat sätt att koda i Java är med hjälp av ett snedstreck så här:
- char nyrad = ’\n’;
- char tabbTecken = ’\t’;
- char backTecken = ’\b’;
- char returTecken = ’\r’;