Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Dataoverførsel i Java | Dyb Java-Struktur
Java Udvidet
course content

Kursusindhold

Java Udvidet

Java Udvidet

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

book
Dataoverførsel i Java

Hvordan overføres information i Java?

Du ved fra det forrige kursus, at der findes to typer hukommelse - stack og heap. Lad os se på, hvordan data gemmes i disse to hukommelsesområder:

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String number = new String("170"); String word = new String("word"); int poolNumber = -4; } }

Vi har oprettet 3 forskellige variabler. Nedenfor ses et diagram, der illustrerer, hvordan og hvor de vil blive gemt i hukommelsen:

Lad os gennemgå, hvad du observerede i diagrammet:

  • Vi ser String-felter i stakhukommelsen, som er henvisninger til værdier i bunkehukommelsen. På denne måde får vi ikke direkte adgang til bunkehukommelsen hver gang. I stedet tilgår vi først henvisningen i stakhukommelsen, hvilket er hurtigere end at tilgå bunkehukommelsen. Du har allerede stødt på henvisninger til værdier, da du lærte om emnet String Pool;
  • Du kan se, at int ikke gemmes i bunkehukommelsen; dens værdi gemmes direkte i stakhukommelsen. Dette gælder for alle primitive datatyper (byte, short, int, long, float, double og boolean). Dermed videregives primitive datatyper i Java som værdier. Dog er String ikke en primitiv datatype, så dens værdi gemmes i bunkehukommelsen;
  • Et nyt objekt oprettes i bunkehukommelsen for hvert nyt link. Men hvis to variabler af samme type har samme værdi, vil de referere til det samme objekt i bunkehukommelsen;
  • Integer Pool er et område i stakhukommelsen, hvor alle heltalsværdier i intervallet fra -128 til 127 er forbundet. Denne optimering udføres for at forbedre ydeevnen ved håndtering af tal i Java, da tal i dette interval ofte bruges. Husk, at stakhukommelsen arbejder hurtigere end bunkehukommelsen, så vi får hurtigere svar takket være Integer Pool;
  • String Pool er et område i bunkehukommelsen, hvor identiske strengværdier gemmes.

Konklusion

I Java videregives alt som værdi. For objekter videregives en kopi af referencen, men det faktiske objekt i bunkehukommelsen forbliver uændret (hvis det er uforanderligt, som String).

Variabler i stakken gemmer referencer til objekter placeret i bunkehukommelsen. Dette gælder for alle referencetyper, inklusive String.

1. Hvad er en Integer Pool i Java?

2. Hvordan overføres data i Java, ved reference eller ved værdi?

question mark

Hvad er en Integer Pool i Java?

Select the correct answer

question mark

Hvordan overføres data i Java, ved reference eller ved værdi?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 2

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
Dataoverførsel i Java

Hvordan overføres information i Java?

Du ved fra det forrige kursus, at der findes to typer hukommelse - stack og heap. Lad os se på, hvordan data gemmes i disse to hukommelsesområder:

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String number = new String("170"); String word = new String("word"); int poolNumber = -4; } }

Vi har oprettet 3 forskellige variabler. Nedenfor ses et diagram, der illustrerer, hvordan og hvor de vil blive gemt i hukommelsen:

Lad os gennemgå, hvad du observerede i diagrammet:

  • Vi ser String-felter i stakhukommelsen, som er henvisninger til værdier i bunkehukommelsen. På denne måde får vi ikke direkte adgang til bunkehukommelsen hver gang. I stedet tilgår vi først henvisningen i stakhukommelsen, hvilket er hurtigere end at tilgå bunkehukommelsen. Du har allerede stødt på henvisninger til værdier, da du lærte om emnet String Pool;
  • Du kan se, at int ikke gemmes i bunkehukommelsen; dens værdi gemmes direkte i stakhukommelsen. Dette gælder for alle primitive datatyper (byte, short, int, long, float, double og boolean). Dermed videregives primitive datatyper i Java som værdier. Dog er String ikke en primitiv datatype, så dens værdi gemmes i bunkehukommelsen;
  • Et nyt objekt oprettes i bunkehukommelsen for hvert nyt link. Men hvis to variabler af samme type har samme værdi, vil de referere til det samme objekt i bunkehukommelsen;
  • Integer Pool er et område i stakhukommelsen, hvor alle heltalsværdier i intervallet fra -128 til 127 er forbundet. Denne optimering udføres for at forbedre ydeevnen ved håndtering af tal i Java, da tal i dette interval ofte bruges. Husk, at stakhukommelsen arbejder hurtigere end bunkehukommelsen, så vi får hurtigere svar takket være Integer Pool;
  • String Pool er et område i bunkehukommelsen, hvor identiske strengværdier gemmes.

Konklusion

I Java videregives alt som værdi. For objekter videregives en kopi af referencen, men det faktiske objekt i bunkehukommelsen forbliver uændret (hvis det er uforanderligt, som String).

Variabler i stakken gemmer referencer til objekter placeret i bunkehukommelsen. Dette gælder for alle referencetyper, inklusive String.

1. Hvad er en Integer Pool i Java?

2. Hvordan overføres data i Java, ved reference eller ved værdi?

question mark

Hvad er en Integer Pool i Java?

Select the correct answer

question mark

Hvordan overføres data i Java, ved reference eller ved værdi?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 2
some-alt