Vilka olika datatyper finns det i Java?
Java erbjuder åtta primitiva datatyper och ett stort antal komplexa datatyper. Dessa avgör vilka värden som kan lagras och visas i en variabel. Vissa datatyper tilldelas alla variabler i Java.
Vilka datatyper finns det i Java?
I varje programmeringsspråk finns det olika datatyper som innehåller specifika objekt och definierade operationer. Även om datatypsalternativen som erbjuds av olika språk ofta liknar varandra, finns det ibland betydande skillnader. Om du till exempel jämför Python och Java och deras datatyper kommer du att märka likheter mellan de två, men också många skillnader som gör språken lämpliga för olika typer av uppgifter.
Java använder två olika typer av datatyper: primitiva och komplexa. Komplexa datatyper kallas även referenstyper. Primitiva och komplexa datatyper skiljer sig åt i storlek och avgör vilka värden som kan lagras i en variabel. Medan primitiva datatyper endast kan lagra enkla värden, används referenstyper för att skapa mer komplexa strukturer och organisera och manipulera stora mängder data.
Om du vill lära dig att programmera är det viktigt att inte bara känna till de olika datatyperna, utan också hur du får ut mesta möjliga av var och en av dem. För att förstå hur man bäst använder datatyperna måste man inte bara förstå deras funktionalitet, utan också hur mycket minne de använder (eller sparar).
Vad är primitiva datatyper i Java?
Det finns totalt åtta olika primitiva datatyper i Java, som innehåller fast definierade värdeintervall. De kan delas in i fyra kategorier: logiska datatyper, integrerade datatyper, flyttalsdatatyper och teckendatatyper. De har inga ytterligare specialfunktioner och kallas även elementära datatyper. Varje datatyp har ett fast antal bitar. Vi går igenom primitiva datatyper mer detaljerat nedan. Java använder följande primitiva typer:
- boolean
- byte
- kort
- int eller heltal
- lång
- float
- dubbel
- tecken
boolean
Javas booleanska datatyp är inte en numerisk typ. Den erbjuder endast två möjliga värden: true och false. Den kan användas för att avgöra om ett villkor gäller (true) eller inte (false). Det är en logisk datatyp och dess standardvärde är false. Den består av 1 bit och har följande syntax:
boolean booleanVar;javabyte
byte är en integrerad datatyp som representeras som ett tvåkomplementvärde med en storlek på 8 bitar eller 1 byte. Den används vanligtvis för att spara minne i större matriser. Dess värdeintervall sträcker sig från -128 till 127, och dess standardvärde är 0. Här är dess syntax:
byte byteVar;javashort
short är också en av de integrerade datatyperna i Java och används främst för att spara minne i större matriser. Tvåkomplementvärdet i sig är 16 bitar eller 2 byte stort och dess värdeintervall sträcker sig från -32768 till och med 32767. Som standard är dess värde 0. Så här används short:
short shortVarjavaint eller heltal
int eller heltal är också ett tvåkomplementvärde och en integrerad datatyp med en storlek på 4 byte eller 32 bitar. Dess värdeintervall omfattar heltal mellan -2147483648 och 2147483647 och dess standardvärde är 0. Dess syntax är som följer:
int intVarjavalong
Den största integrerade datatypen är long. Detta gäller för det första dess värdeintervall, som ligger mellan -9223372036854775808 och 9223372036854775807, och för det andra dess egen storlek, som är 8 byte eller 64 bitar. Tvåkomplementvärdet används därför om de andra integrerade datatyperna inte är tillräckliga. Det kräver dock också klart mest minne. Dess standardvärde är 0. Detta är dess syntax:
lomg longVarjavafloat
float är en flyttalsdatatyp och används för att lagra reella tal. Den har en storlek på 32 bitar och överensstämmer med IEEE 754-standarden, som definierar standardrepresentationen av binära och decimala flyttal i datorer. Standardvärdet för float är 0,0 och upp till sju decimaler kan representeras i dess värdeintervall. Jämfört med double är float dock inte lika exakt och bör därför inte användas för värden där precision spelar en avgörande roll. Om så inte är fallet kan du dock använda float för att spara utrymme. Syntaxen för float är följande:
float floatVar;javadouble
double är ungefär dubbelt så exakt som float och fyller ett liknande syfte. Den är 64 bitar stor och kan representera upp till 16 decimaler. Dess standardvärde är också 0,0. Om du behöver mer exakta värden bör du alltid använda double, även om denna datatyp inte heller är särskilt exakt. Om du vill arbeta med absolut exakta värden bör du istället använda klassen BigDecimal. Syntaxen för double är följande:
double doubleVar;javachar
char är en teckendatatyp. Den lagrar tecken baserat på Unicode-teckensatsen, vilket möjliggör portabilitet till många olika plattformar. Varje tecken kräver 2 byte minne. Dess värdeintervall motsvarar ASCII (American Standard Code for Information Interchange) och ligger mellan ‘\u0000’ (dvs. 0) och ‘\uffff’ (motsvarar 65535). Standardvärdet för char är ‘\u0000’ och dess syntax ser ut så här:
char charVarjavaVad är komplexa datatyper i Java?
Den andra typen av datatyper i Java är referenstyper, även kallade komplexa datatyper. De kallas referenstyper eftersom de refererar till objekt. Till skillnad från primitiva datatyper är de normalt inte fördefinierade, utan bestäms av programmeraren (ett undantag är strängar). De kan använda metoder och kan också ha värdet 0 (i betydelsen tom). Medan primitiva datatyper börjar med en gemen bokstav, börjar referenstyper med en versal. Här tittar vi på de viktigaste referenstyperna.
Strängar
String är en klass som kan användas för att representera en sekvens av tecken, vilket skiljer denna komplexa datatyp från den primitiva datatypen char samt andra datatyper. En sträng existerar som ett objekt i klassen java.lang. De olika metoderna i klassen String gör det möjligt att undersöka enskilda tecken i strängen, jämföra strängar med varandra, söka i strängar och kopiera strängar. Strängar identifieras med citattecken. Syntaxen för denna referenstyp ser ut så här:
<string_type> <string_variable> = "<string_sequence>";javaHär är ett exempel på hur strängar fungerar:
// How to create a string without a new operator
String a = "This is your new string";
/ / How to create a string with a new operator
String a1 = new string ("This is your new string");javaMatriser
Arrayer används för att lagra flera värden i en variabel istället för att skapa olika variabler för varje enskilt värde. De skapas med hjälp av hakparenteser. De lagrade värdena placeras i klamrar och separeras med kommatecken. Här är syntaxen för arrayer:
dataType[] arrayName = {value1, value2, value3,…};javaOm du vill skapa en array med strängar kan du göra så här:
String[] colors = {"blue", "red", "yellow", "purple"};javaSå här skapar du en array med heltal:
int[] figures = {5, 10, 15, 20};javaKlasser
I Java är klasser datatyper som fungerar som mallar för att skapa objekt. De innehåller olika komponenter, inklusive klassens namn, modifierare och en kropp innesluten i klamrar. Här är ett exempel på hur en klass ser ut i Java:
public class Main {
int a = 10;
}javaGränssnitt
I Java är ett gränssnitt en abstrakt klass. Det fungerar som ett gränssnitt genom vilket en klass kan komma åt olika funktioner. För att kunna göra detta måste den dock först implementera dem. Gränssnitt innehåller endast konstanter och abstrakta metoder. Deras syntax ser ut så här:
interface {
abstract methods
}javaVi ska här visa ett enkelt exempel på hur gränssnitt fungerar:
interface Pizza {
public void ingredientsList();
public void preparation();
}
class Mushroom implements Pizza {
public void ingredientsList() {
System.out.println("mushrooms, tomato sauce, oregano, mozzarella");
}
public void preparation() {
System.out.println("The pizza will be ready in 15 minutes.");
}
}
class Main {
public static void main(String[] args) {
Mushroom myMushroom = new Mushroom();
myMushroom.ingredientsList();
myMushroom.preparation();
}
}javaMotsvarande utdata från Java-kommandot System.out.println ser ut så här:
mushrooms, tomato sauce, oregano, mozzarella
The pizza will be ready in 15 minutes.javaObjekt
I Java är objekt också en komplex datatyp. Objekt är instanser av klasser som sedan kan interagera med varandra med hjälp av metoder. I följande exempel ska vi skapa flera objekt i en Main-klass:
public class Main {
int a = 10;
public static void main(String[] args) {
Main myObj1 = new Main();
Main myObj2 = new Main();
System.out.println(myObj1.a);
System.out.println(myObj2.a);
}
}javaResultatet ser ut så här:
10
10javaEnumereringar
Enums är en speciell klass som gör det möjligt att införliva oföränderliga konstanter i din kod. Dessa variabler tilldelas fasta värden som inte kan ändras. Denna datatyp är särskilt användbar om du behöver variabler som endast ska ha ett fåtal möjliga tillstånd. Syntaxen för en enum ser ut så här:
enum NameOfTheClass {
VALUE1,
VALUE2,
VALUE3
}java
