Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Datatransfer i Java | Seksjon
Practice
Projects
Quizzes & Challenges
Quizer
Challenges
/
Essensielle Java-konsepter

bookDatatransfer i Java

Sveip for å vise menyen

Hvordan informasjon overføres i Java

Fra forrige kurs vet du at det finnes to typer minne – stack og heap. La oss se på hvordan data lagres i disse to minneområdene:

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

Det er opprettet 3 ulike variabler. Nedenfor vises et diagram som illustrerer hvordan og hvor de lagres i minnet:

La oss gå gjennom det du observerte i diagrammet:

  • Vi ser String-felt i stakkminnet som er lenker til verdier i heap-minnet. På denne måten får vi ikke tilgang til heap-minnet direkte hver gang. I stedet får vi først tilgang til lenken i stakkminnet, noe som er raskere enn å få tilgang til heap-minnet. Du har allerede støtt på lenker til verdier når du lærte om String Pool-emnet;
  • Du kan se at int ikke lagres i heap-minnet; verdien lagres direkte i stakkminnet. Dette gjelder alle primitive datatyper (byte, short, int, long, float, double og boolean). Dermed sendes primitive datatyper i Java som verdier. Men String er ikke en primitiv datatype, så verdien lagres i heap-minnet;
  • Et nytt objekt opprettes i heap-minnet for hver ny lenke. Men hvis to variabler av samme type har samme verdi, vil de referere til det samme objektet i heap-minnet;
  • Integer Pool er et område i stakkminnet hvor alle heltallsverdier i området fra -128 til 127 er lenket. Denne optimaliseringen gjøres for å forbedre ytelsen ved håndtering av tall i Java, siden tall i dette området ofte brukes. Husk at stakkminnet opererer raskere enn heap-minnet, så vi får raskere responser takket være Integer Pool;
  • String Pool er et område i heap-minnet hvor identiske strengverdier lagres.

Konklusjon

I Java sendes alt som verdi. For objekter sendes en kopi av referansen, men det faktiske objektet i heap forblir uendret (hvis det er uforanderlig, som String).

Variabler i stakken lagrer referanser til objekter som befinner seg i heap. Dette gjelder alle referansetyper, inkludert String.

1. Hva er en Integer Pool i Java?

2. Hvordan overføres data i Java, ved referanse eller ved verdi?

question mark

Hva er en Integer Pool i Java?

Select the correct answer

question mark

Hvordan overføres data i Java, ved referanse eller ved verdi?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 2

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

Seksjon 1. Kapittel 2
some-alt