Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Dieper in String | String Geavanceerd
Java Uitgebreid
course content

Cursusinhoud

Java Uitgebreid

Java Uitgebreid

1. Diepe Java-structuur
2. Methoden
3. String Geavanceerd
4. Klassen
5. Geavanceerde Klassen

book
Dieper in String

Hoe werkt String eigenlijk?

Je weet al wat een String is en hoe je ermee werkt. Dit hoofdstuk behandelt de theoretische aspecten van wat er zich binnen een String bevindt.

Laten we de onderliggende representatie van String-waarden in Java verkennen. Aanvankelijk werd String geïmplementeerd als een array van char-waarden, wat eenvoudig en intuïtief was. Later is dit echter veranderd naar een array van byte-waarden. Laten we het motief achter deze wijziging begrijpen.

Een char-variabele in Java neemt 2 bytes geheugen in beslag, terwijl een byte-variabele slechts 1 byte vereist. Door gebruik te maken van byte-waarden kunnen we het geheugengebruik aanzienlijk verminderen, tot slechts een kwart van de oorspronkelijke ruimte.

Maar hoe kan een String verschillende tekens bevatten, inclusief niet-numerieke? Het mechanisme lijkt op dat van een char-variabele. We maken gebruik van de ASCII-tabel, waarbij numerieke gegevens aan specifieke tekens worden gekoppeld, waardoor een breed scala aan tekens in een String kan worden weergegeven.

Laten we een illustratie bekijken die de String-waarde "Hello" weergeeft:

De cellen bevatten elementen van het type byte, die we uit de ASCII-tabel halen. We kunnen zelfs in de code de exacte byte-array bekijken die is opgeslagen in de waarde van een String-variabele. Dit kan worden gedaan met de methode getBytes().

Main.java

Main.java

copy
12345678910111213141516
package com.example; public class Main { public static void main(String[] args) { String hello = "Hello"; byte[] bytes = hello.getBytes(); printArray(bytes); } static void printArray(byte[] bytes) { for (byte element: bytes) { System.out.print(element + " "); } System.out.println(); } }

We kunnen zien dat de byte-waarden identiek zijn aan die in het bovenstaande diagram. Daarnaast kun je, als je geïnteresseerd bent, de ASCII-tabel raadplegen en de code van elk element vergelijken met de bijbehorende waarde.

We kunnen deze byte[]-array, verkregen uit een String-object, manipuleren.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 1

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

course content

Cursusinhoud

Java Uitgebreid

Java Uitgebreid

1. Diepe Java-structuur
2. Methoden
3. String Geavanceerd
4. Klassen
5. Geavanceerde Klassen

book
Dieper in String

Hoe werkt String eigenlijk?

Je weet al wat een String is en hoe je ermee werkt. Dit hoofdstuk behandelt de theoretische aspecten van wat er zich binnen een String bevindt.

Laten we de onderliggende representatie van String-waarden in Java verkennen. Aanvankelijk werd String geïmplementeerd als een array van char-waarden, wat eenvoudig en intuïtief was. Later is dit echter veranderd naar een array van byte-waarden. Laten we het motief achter deze wijziging begrijpen.

Een char-variabele in Java neemt 2 bytes geheugen in beslag, terwijl een byte-variabele slechts 1 byte vereist. Door gebruik te maken van byte-waarden kunnen we het geheugengebruik aanzienlijk verminderen, tot slechts een kwart van de oorspronkelijke ruimte.

Maar hoe kan een String verschillende tekens bevatten, inclusief niet-numerieke? Het mechanisme lijkt op dat van een char-variabele. We maken gebruik van de ASCII-tabel, waarbij numerieke gegevens aan specifieke tekens worden gekoppeld, waardoor een breed scala aan tekens in een String kan worden weergegeven.

Laten we een illustratie bekijken die de String-waarde "Hello" weergeeft:

De cellen bevatten elementen van het type byte, die we uit de ASCII-tabel halen. We kunnen zelfs in de code de exacte byte-array bekijken die is opgeslagen in de waarde van een String-variabele. Dit kan worden gedaan met de methode getBytes().

Main.java

Main.java

copy
12345678910111213141516
package com.example; public class Main { public static void main(String[] args) { String hello = "Hello"; byte[] bytes = hello.getBytes(); printArray(bytes); } static void printArray(byte[] bytes) { for (byte element: bytes) { System.out.print(element + " "); } System.out.println(); } }

We kunnen zien dat de byte-waarden identiek zijn aan die in het bovenstaande diagram. Daarnaast kun je, als je geïnteresseerd bent, de ASCII-tabel raadplegen en de code van elk element vergelijken met de bijbehorende waarde.

We kunnen deze byte[]-array, verkregen uit een String-object, manipuleren.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 1
some-alt