Wat zijn de verschillende gegevenstypen in Java?
Java biedt acht primitieve datatypes en talrijke complexe datatypes. Deze bepalen welke waarden binnen een variabele kunnen worden opgeslagen en weergegeven. Bepaalde datatypes worden toegewezen aan alle variabelen in Java.
Welke gegevenstypen zijn er in Java?
In elke programmeertaal zijn er verschillende gegevenstypen die specifieke objecten en gedefinieerde bewerkingen bevatten. Hoewel de gegevenstypen die door verschillende talen worden aangeboden vaak op elkaar lijken, zijn er soms aanzienlijke verschillen. Als je bijvoorbeeld Python en Java en hun gegevenstypen vergelijkt, zie je overeenkomsten tussen de twee, maar ook talrijke verschillen die de talen geschikt maken voor verschillende soorten taken.
Java maakt gebruik van twee verschillende soorten datatypes: primitieve en complexe. Complexe datatypes worden ook wel referentietypes genoemd. Primitieve en complexe datatypes verschillen qua grootte en bepalen welke waarden in een variabele kunnen worden opgeslagen. Terwijl primitieve datatypes alleen eenvoudige waarden kunnen opslaan, worden referentietypes gebruikt om complexere structuren te creëren en grote hoeveelheden gegevens te organiseren en te manipuleren.
Als je wilt leren programmeren, is het belangrijk om niet alleen de verschillende gegevenstypen te kennen, maar ook te weten hoe je het meeste uit elk van deze typen kunt halen. Om te begrijpen hoe je gegevenstypen het beste kunt gebruiken, moet je niet alleen weten wat hun functionaliteit is, maar ook hoeveel geheugen ze gebruiken (of besparen).
Wat zijn primitieve datatypes in Java?
Er zijn in totaal acht verschillende primitieve datatypes in Java, die vastomlijnde waardebereiken bevatten. Ze kunnen worden onderverdeeld in vier categorieën: logische datatypes, integrale datatypes, drijvende-kommadatatypes en tekendatatypes. Ze hebben geen extra speciale mogelijkheden en worden ook wel elementaire datatypes genoemd. Elk datatype heeft een vast aantal bits. Hieronder gaan we dieper in op de primitieve datatypes. Java maakt gebruik van de volgende primitieve types:
- booleaanse waarde
- byte
- kort
- int of integer
- lang
- drijvende komma
- dubbel
- teken
boolean
Hetbooleaanse gegevenstypevan Java is geen numeriek type. Het biedt slechts twee mogelijke waarden: true en false. Het kan worden gebruikt om te bepalen of een voorwaarde van toepassing is (true) of niet (false). Het is een logisch gegevenstype en de standaardwaarde is false. Het bestaat uit 1 bit en heeft de volgende syntaxis:
boolean booleanVar;javabyte
byte is een integraal gegevenstype dat wordt weergegeven als een twee-complementwaarde met een grootte van 8 bits of 1 byte. Het wordt doorgaans gebruikt om geheugen te besparen in grotere arrays. Het waardebereik loopt van -128 tot 127 en de standaardwaarde is 0. Dit is de syntaxis:
byte byteVar;javashort
short is ook een van de integrale gegevenstypen in Java en wordt voornamelijk gebruikt om geheugen te besparen in grotere arrays. De waarde van het twee-complement zelf is 16 bits of 2 bytes groot en het waardebereik loopt van -32768 tot en met 32767. Standaard is de waarde 0. Zo wordt short gebruikt:
short shortVarjavaint of geheel getal
int of integer is ook een twee-complementwaarde en een integraal gegevenstype met een grootte van 4 bytes of 32 bits. Het waardebereik omvat gehele getallen tussen -2147483648 en 2147483647 en de standaardwaarde is 0. De syntaxis is als volgt:
int intVarjavalong
Het grootste integrale gegevenstype is long. Dit geldt ten eerste voor het waardebereik, dat tussen -9223372036854775808 en 9223372036854775807 ligt, en ten tweede voor de grootte zelf, die 8 bytes of 64 bits is. De twee-complementwaarde wordt daarom gebruikt als de andere integrale gegevenstypen niet voldoende zijn. Het vereist echter ook veruit de meeste geheugenruimte. De standaardwaarde is 0. Dit is de syntaxis:
lomg longVarjavafloat
float is een drijvende-kommagegevenstype en wordt gebruikt om reële getallen op te slaan. Het heeft een grootte van 32 bits en voldoet aan de IEEE 754-standaard, die de standaardweergave van binaire en decimale drijvende-kommagetallen in computers definieert. De standaardwaarde van float is 0,0 en er kunnen maximaal zeven decimalen worden weergegeven in het waardebereik. In vergelijking met double is float echter niet zo nauwkeurig en mag daarom niet worden gebruikt voor waarden waarbij nauwkeurigheid een doorslaggevende rol speelt. Als dit echter niet het geval is, kunt u float gebruiken om ruimte te besparen. De syntaxis voor float is als volgt:
float floatVar;javadouble
double is ongeveer twee keer zo nauwkeurig als float en vervult een soortgelijk doel. Het is 64 bits groot en kan tot 16 decimalen weergeven. De standaardwaarde is ook 0,0. Als u nauwkeurigere waarden nodig hebt, moet u altijd double gebruiken, hoewel dit gegevenstype ook niet zo nauwkeurig is. Als u met absoluut exacte waarden wilt werken, moet u in plaats daarvan de klasse BigDecimal gebruiken. De syntaxis van double is als volgt:
double doubleVar;javachar
char is een tekengegevenstype. Het slaat tekens op basis van de Unicode-tekenset op, waardoor het op tal van verschillende platforms kan worden gebruikt. Elk teken vereist 2 bytes geheugen. Het waardebereik komt overeen met ASCII (American Standard Code for Information Interchange) en ligt tussen ‘\u0000’ (d.w.z. 0) en ‘\uffff’ (komt overeen met 65535). De standaardwaarde van char is ‘\u0000’ en de syntaxis ziet er als volgt uit:
char charVarjavaWat zijn complexe datatypes in Java?
Het tweede type gegevenstypen in Java zijn de referentietypen, ook wel complexe gegevenstypen genoemd. Ze worden referentietypen genoemd omdat ze naar objecten verwijzen. In tegenstelling tot primitieve gegevenstypen zijn ze normaal gesproken niet vooraf gedefinieerd, maar worden ze bepaald door de programmeur (een uitzondering hierop is string). Ze kunnen methoden gebruiken en kunnen ook de waarde 0 hebben (in de zin van leeg). Terwijl primitieve gegevenstypen beginnen met een kleine letter, beginnen referentietypen met een hoofdletter. Hier bekijken we de belangrijkste referentietypen.
Touwtjes
String is een klasse die kan worden gebruikt om een reeks tekens weer te geven, waardoor dit complexe gegevenstype zich onderscheidt van het primitieve gegevenstype char en andere gegevenstypen. Een tekenreeks bestaat als een object in de klasse java.lang. Met de verschillende methoden van de klasse String kunt u afzonderlijke tekens in de tekenreeks bekijken, tekenreeksen met elkaar vergelijken, tekenreeksen zoeken en tekenreeksen kopiëren. Tekenreeksen worden aangeduid met aanhalingstekens. De syntaxis van dit referentietype ziet er als volgt uit:
<string_type> <string_variable> = "<string_sequence>";javaHier is een voorbeeld van hoe strings werken:
// 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");javaArrays
Arrays worden gebruikt om meerdere waarden binnen een variabele op te slaan in plaats van voor elke afzonderlijke waarde een aparte variabele aan te maken. Ze worden aangemaakt met behulp van vierkante haken. De opgeslagen waarden worden tussen accolades geplaatst en door komma’s gescheiden. Hier is de syntaxis voor arrays:
dataType[] arrayName = {value1, value2, value3,…};javaAls u een array met strings wilt maken, kunt u dat als volgt doen:
String[] colors = {"blue", "red", "yellow", "purple"};javaHier volgt hoe je een array met gehele getallen kunt maken:
int[] figures = {5, 10, 15, 20};javaLessen
In Java zijn klassen datatypes die dienen als sjabloon voor het maken van objecten. Ze bevatten verschillende componenten, waaronder de naam van de klasse, modifiers en een body tussen accolades. Hier is een voorbeeld van hoe een klasse er in Java uitziet:
public class Main {
int a = 10;
}javaInterfaces
In Java is een interface een abstracte klasse. Het fungeert als een interface waarmee een klasse toegang heeft tot verschillende functies. Om dit te kunnen doen, moet het deze echter eerst implementeren. Interfaces bevatten alleen constanten en abstracte methoden. Hun syntaxis ziet er als volgt uit:
interface {
abstract methods
}javaWe zullen hier een eenvoudig voorbeeld geven om te laten zien hoe interfaces werken:
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();
}
}javaDe overeenkomstige uitvoer van het Java-commando System.out.println ziet er als volgt uit:
mushrooms, tomato sauce, oregano, mozzarella
The pizza will be ready in 15 minutes.javaObjecten
In Java zijn objecten ook een complex gegevenstype. Objecten zijn instanties van klassen die vervolgens met elkaar kunnen communiceren via methoden. In het volgende voorbeeld gaan we verschillende objecten maken in een Main-klasse:
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);
}
}javaDe uitvoer ziet er als volgt uit:
10
10javaEnums
Enums zijn een speciale klasse waarmee u onveranderlijke constanten in uw code kunt opnemen. Aan deze variabelen worden vaste waarden toegekend die niet kunnen worden gewijzigd. Dit gegevenstype is vooral handig als u variabelen nodig hebt die slechts een paar mogelijke toestanden kunnen hebben. De syntaxis van een enum ziet er als volgt uit:
enum NameOfTheClass {
VALUE1,
VALUE2,
VALUE3
}java