Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Dypere inn i String | Avansert Streng
Java Utvidet
course content

Kursinnhold

Java Utvidet

Java Utvidet

1. Dyp Java-struktur
2. Metoder
3. Avansert Streng
4. Klasser
5. Avanserte Klasser

book
Dypere inn i String

Hvordan fungerer String egentlig?

Du kjenner allerede til hva en String er og hvordan du arbeider med den. Dette kapittelet tar for seg de teoretiske aspektene ved hva som ligger bak en String.

La oss utforske den underliggende representasjonen av String-verdier i Java. Opprinnelig ble String implementert som et array av char-verdier, noe som var enkelt og intuitivt. Senere gikk man over til et array av byte-verdier. La oss forstå begrunnelsen for denne endringen.

En char-variabel i Java opptar 2 byte minne, mens en byte-variabel kun krever 1 byte. Ved å bruke byte-verdier kan vi redusere minnebruken betydelig, og kun bruke en fjerdedel av plassen.

Men hvordan kan en String håndtere ulike tegn, inkludert ikke-numeriske? Mekanismen ligner på den for en char-variabel. Vi benytter oss av ASCII-tabellen, hvor numeriske data er tilordnet spesifikke tegn, noe som muliggjør representasjon av et bredt spekter av tegn i en String.

La oss se på en illustrasjon som viser String-verdien "Hello":

Cellene inneholder elementer av typen byte, som vi henter fra ASCII-tabellen. Vi kan til og med se i koden det eksakte byte-arrayet som er lagret i verdien til en String-variabel. Dette kan gjøres ved å bruke metoden 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(); } }

Vi kan se at byte-verdiene er identiske med de som vises i diagrammet ovenfor. I tillegg, hvis du er interessert, kan du se på ASCII-tabellen og sammenligne koden til hvert element med tilsvarende verdi.

Vi kan manipulere denne byte[]-arrayen som vi får fra et String-objekt.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

course content

Kursinnhold

Java Utvidet

Java Utvidet

1. Dyp Java-struktur
2. Metoder
3. Avansert Streng
4. Klasser
5. Avanserte Klasser

book
Dypere inn i String

Hvordan fungerer String egentlig?

Du kjenner allerede til hva en String er og hvordan du arbeider med den. Dette kapittelet tar for seg de teoretiske aspektene ved hva som ligger bak en String.

La oss utforske den underliggende representasjonen av String-verdier i Java. Opprinnelig ble String implementert som et array av char-verdier, noe som var enkelt og intuitivt. Senere gikk man over til et array av byte-verdier. La oss forstå begrunnelsen for denne endringen.

En char-variabel i Java opptar 2 byte minne, mens en byte-variabel kun krever 1 byte. Ved å bruke byte-verdier kan vi redusere minnebruken betydelig, og kun bruke en fjerdedel av plassen.

Men hvordan kan en String håndtere ulike tegn, inkludert ikke-numeriske? Mekanismen ligner på den for en char-variabel. Vi benytter oss av ASCII-tabellen, hvor numeriske data er tilordnet spesifikke tegn, noe som muliggjør representasjon av et bredt spekter av tegn i en String.

La oss se på en illustrasjon som viser String-verdien "Hello":

Cellene inneholder elementer av typen byte, som vi henter fra ASCII-tabellen. Vi kan til og med se i koden det eksakte byte-arrayet som er lagret i verdien til en String-variabel. Dette kan gjøres ved å bruke metoden 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(); } }

Vi kan se at byte-verdiene er identiske med de som vises i diagrammet ovenfor. I tillegg, hvis du er interessert, kan du se på ASCII-tabellen og sammenligne koden til hvert element med tilsvarende verdi.

Vi kan manipulere denne byte[]-arrayen som vi får fra et String-objekt.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 1
some-alt