Nyckelord: Datatyper, integer, double, boolean
Det här kapitlet kommer behandla de primitiva datatyperna, även kallat grundläggande datatyper (engelska: data types) i Java. Vi kommer se hur vi kan deklarera (skapa) olika variabler och konstanter samt skillnader mellan olika datatyper. Avslutningsvis så kommer kapitlet gå igenom hur vi kan använda oss av variabler för en rad olika matematiska beräkningar, och mer generellt, vilka möjligheter och begränsningar de olika datatyperna medför.
Datatyper i Java är det som bestämmer vilken slags data en variabel kan innehålla (t.ex. heltal, decimaltal, tecken, referens) där datatypen bestäms vid deklarationen. Det är viktigt att deklarera rätt datatyp till rätt data, då en variabel bara kan innehålla den typ av data den är deklarerad för. I program lagrar man data i variabler där varje variabel motsvaras av en minnesplats i datorn. Eftersom variabler går att använda om och om igen så blir de väldigt användbara och de utgör grunden i programmering.
Detta kapitel innehåller följande artiklar där vi först ska lära oss vad det innebär med olika datatyper, för att sedan gå vidare och implementera dem till en rad olika användningsområden
En datatyp berättar för datorn vilken typ av information som datan består av. Java och många andra kodspråk är så kallade typade språk. Med det menas att vi behöver hålla koll på vilken datatyp variabler har då vi använder dem till olika operationer. Det finns olika datatyper, där varje datatyp beskriver en viss sorts av data. För en dator är det nämligen stor skillnad på om man lagrar exempelvis en textsträng eller ett heltal, även om informationen är snarlik.
Java och många andra kodspråk är så kallade typade språk
I Java är det exempelvis skillnad att spara heltalet 10 eller textsträngen “10”. Och det skulle såklart inte gå att multiplicera talet 5 med textsträngen “3”. Därför behöver vi alltid ange vilken sorts information vi vill spara undan, så att kompilatorn kan tolka datan på rätt sätt. Detta gör vi med datatyper.
Sammanfattningsvis är en datatyp:
I programmering lagrar vi hela tiden information i minnet för att kunna använda den vid ett senare tillfälle. Gör vi exempelvis en uträkning, vill vi ju kunna spara värdet på uträkningen till ett senare tillfälle. I Java lagrar man data i variabler av en viss datatyp. En datatyp är som det låter – en viss typ av data. Exempelvis lagrar man heltal i integers och text sparar man i Strings. Därför måste vi veta vilka datatyper som finns och vilken information datatypen kan hålla. Man kan exempelvis inte lagra ett heltal i en String eller vise versa.
I Java lagrar man data i variabler av en viss datatyp
– Oracle
Det finns två varianter av datatyper i Java, de primitiva datatyperna och Icke-primitiva datatyper (engelska: Non-primitive data types). En Icke-primitiv datatyp är en referens till en instans, till exempel en Array eller ett Objekt, och det låter säkerligen väldigt förvirrande. Oroa dig inte, vi kommer vi gå igenom vad allt det innebär i senare kapitel. Nu fokuserar vi på de primitiva datatyperna.
Varje datatyp tar upp en viss plats i minnet, ett visst antal bits. Du vet kanske redan att en dator enbart hanterar ettor och nollor (det vill säga bits) som representeras av det binära talsystemet (alltså ettor och nollor). Vi ska inte gå in på detalj hur det binära talsystemet fungerar här, men det viktiga att ta med sig är att stora tal behöver fler bits för att lagras, det vill säga större plats i minnet.
Det är alltså värt att fundera en extra gång på vilken datatyp man använder så att man inte slösar på minne, eller av misstag försöker spara ett för stort värde i en datatyp där den inte får plats, för då kommer programmet att krascha.
Figur 1 nedan visar en sammanställning av de fyra vanligaste kategorierna, nämligen heltal, decimaltal, boolesk datatyp och tecken, samt deras respektive datatyper
Men låt oss nu kolla lite närmare på de fyra olika kategorierna av primitiva datatyper.
Vi börjar med heltalen, det vill säga 0, 1, 2, 3, …, o.s,v. och dess negativa motsvarighet -1, -2, -3, … , o.s.v. Det finns fyra stycken datatyper som lagrar heltal. Dessa är byte, short, int och long. Nedan ser du hur många bitar varje datatyp behöver, samt det minsta och största värdet som går att spara i respektive datatyp.
Datatyp | Bitstorlek | Min-värde | Max-värde |
---|---|---|---|
byte | 8 | -128 | 128 |
short | 16 | -32 768 | 32 768 |
int | 32 | −2147 483 648 | 2147 483 648 |
long | 64 | ≈ −9 × 1018 | ≈ 9 × 1018 |
Den vanligaste datatypen att använda är int, eftersom den täcker de mest tänkbara heltalen man kan behöva i ett program (tal mellan −2147 483 648 och 2147 483 648). Men long finns också tillgänglig om man skulle behöva större tal än så. Vet du med säkerhet att du bara kommer använda små tal i ditt program, kan du med fördel använda short eller byte.
Om du istället vill spara decimaltal i minnet, kan man använda sig av float eller double. De fungerar på liknande sätt som heltal, där float har 32 bitar och double 64 stycken. Dessa datatyper är användbara exempelvis när man vill spara ett irrationellt tal som pi, med godtyckligt många decimaler.
Datatyp | Bitstorlek | Min-värde | Max-värde |
---|---|---|---|
float | 32 | ≈ −3.4 × 1038 | ≈ 3.4 × 1038 |
double | 64 | ≈ −1.7 × 10308 | ≈ 1.7 × 10308 |
Ett logiskt (booleskt) värde har datatypen boolean. En boolesk variabel kan endast anta värdena true eller false vilket gör att booleska variabler blir väldigt användbara som villkor exempelvis i if-satser eller loopar, när man vill köra ett program tills ett villkor är uppfyllt. Man kan även tänka att true är en etta (1), och false är en nolla (0).
Om man istället vill lagra tecken kan man använda sig av datatypen char (character). Char är perfekt att använda om man vill spara ett enda enskilt tecken, exempelvis bokstaven ‘a’. Men ofta vill man spara ett helt ord, eller en hel mening. Då behöver man använda sig av en samling av chars, så kallad String. Strings är visserligen ingen primitiv datatyp, men den används så ofta att vi redan nu introducerar den. En String är användbar när man vill spara en hel mening i minnet, exempelvis “Programmera Java är kul”.
Ja det går bra! Om problemet med att en operation inte kan utföras på grund av datatyperna inte överensstämmer så går det att lösa med hjälp av det som kallas typkonvertering. Vi kommer längre fram i det här kapitlet se hur vi kan använda typkonvertering och konvertera från en datatyp till en annan.
En datatyp berättar för datorn vilken typ av information som datan består av. Det finns olika datatyper, där varje datatyp beskriver en viss sorts av data.
En datatyp i Java är
Ja och nej. Det är viktigt att du väljer rätt kategori av datatyp. Exempelvis, ifall du jobbar med siffror och multiplicerar två tal så behöver du ha koll på vilken datatyp resultatet blir så att du skapar antingen ett heltal eller ett decimaltal, och inte t.ex. en boolean. Däremot är det inte lika viktigt att du väljer specifikt rätt datatyp. T.ex. i de flesta fall så spelar det inte så stor roll ifall du skapar en integer eller en long.
Om man gör större fel, exempelvis om du skulle försöka multiplicera ett heltal med en textsträng så kommer kompilatorn automatiskt att varna. Däremot behöver du själv ha koll på vad resultatet på dina beräkningar blir. Om du t.ex. utför en uträkning med division, säg mellan heltalen 7 och 2 så kommer uträkningen 7 delat med 2 att bli = 3, fast du förmodligen ville att det skulle resultera i 3,5. Varför det blir så kommer vi se längre fram på sidan om Matematiska Operationer. Men om du behöver göra om en datatyp till en annan så kan vi alltid använda oss av typkonvertering och konvertera från en datatyp till en annan.
Nej. Java och många andra kodspråk är så kallade typade språk. Med det menas att vi behöver hålla koll på vilken datatyp variabler har då vi använder dem till olika operationer. Vi behöver helt enkelt berätta för datorn vilken sorts data en viss typ av information är.
Lämna gärna feedback med hjälp av stjärnorna nedan och hjälp oss att fortsätta göra sidan bättre.
Vad tyckte du om sidan?
Lämna gärna feedback och hjälp oss göra sidan bättre
Feedback gör oss bättre!
Lämna gärna feedback om vad du tyckte om avsnittet!