Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Dybere Ind i String | String Avanceret
Java Udvidet
course content

Kursusindhold

Java Udvidet

Java Udvidet

1. Dyb Java-Struktur
2. Metoder
3. String Avanceret
4. Klasser
5. Avancerede Klasser

book
Dybere Ind i String

Hvordan fungerer String egentlig?

Du kender allerede til, hvad en String er, og hvordan man arbejder med den. Dette kapitel vil dække de teoretiske aspekter af, hvad der ligger bag en String.

Lad os undersøge den underliggende repræsentation af String-værdier i Java. Oprindeligt blev String implementeret som et array af char-værdier, hvilket var ligetil og intuitivt. Senere blev det dog ændret til et array af byte-værdier. Lad os forstå begrundelsen for denne ændring.

En char-variabel i Java optager 2 bytes hukommelse, mens en byte-variabel kun kræver 1 byte. Ved at anvende byte-værdier kan vi markant reducere hukommelsesforbruget og kun bruge en fjerdedel af pladsen.

Men hvordan kan en String rumme forskellige tegn, herunder ikke-numeriske? Mekanismen ligner den, der bruges for en char-variabel. Vi benytter ASCII-tabellen, hvor numeriske data kortlægges til specifikke tegn, hvilket muliggør repræsentation af et bredt udvalg af tegn i en String.

Lad os se på en illustration, der repræsenterer String-værdien "Hello":

Cellerne indeholder elementer af typen byte, som vi henter fra ASCII-tabellen. Vi kan endda i koden se det præcise byte-array, der er gemt i værdien af en String-variabel. Dette kan gøres ved hjælp af getBytes()-metoden.

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(); } }

Vi kan se, at byte-værdierne er identiske med dem, der vises i diagrammet ovenfor. Hvis du er interesseret, kan du desuden se på ASCII-tabellen og sammenligne koden for hvert element med den tilsvarende værdi.

Vi kan manipulere dette byte[]-array, som vi får fra et String-objekt.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 1

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

course content

Kursusindhold

Java Udvidet

Java Udvidet

1. Dyb Java-Struktur
2. Metoder
3. String Avanceret
4. Klasser
5. Avancerede Klasser

book
Dybere Ind i String

Hvordan fungerer String egentlig?

Du kender allerede til, hvad en String er, og hvordan man arbejder med den. Dette kapitel vil dække de teoretiske aspekter af, hvad der ligger bag en String.

Lad os undersøge den underliggende repræsentation af String-værdier i Java. Oprindeligt blev String implementeret som et array af char-værdier, hvilket var ligetil og intuitivt. Senere blev det dog ændret til et array af byte-værdier. Lad os forstå begrundelsen for denne ændring.

En char-variabel i Java optager 2 bytes hukommelse, mens en byte-variabel kun kræver 1 byte. Ved at anvende byte-værdier kan vi markant reducere hukommelsesforbruget og kun bruge en fjerdedel af pladsen.

Men hvordan kan en String rumme forskellige tegn, herunder ikke-numeriske? Mekanismen ligner den, der bruges for en char-variabel. Vi benytter ASCII-tabellen, hvor numeriske data kortlægges til specifikke tegn, hvilket muliggør repræsentation af et bredt udvalg af tegn i en String.

Lad os se på en illustration, der repræsenterer String-værdien "Hello":

Cellerne indeholder elementer af typen byte, som vi henter fra ASCII-tabellen. Vi kan endda i koden se det præcise byte-array, der er gemt i værdien af en String-variabel. Dette kan gøres ved hjælp af getBytes()-metoden.

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(); } }

Vi kan se, at byte-værdierne er identiske med dem, der vises i diagrammet ovenfor. Hvis du er interesseret, kan du desuden se på ASCII-tabellen og sammenligne koden for hvert element med den tilsvarende værdi.

Vi kan manipulere dette byte[]-array, som vi får fra et String-objekt.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 1
some-alt