Streng-Immutabilitet i Java
Stryg for at vise menuen
Du ved allerede, at Strings gemmer tekst som kundenavne, produktnavne og beskeder. Men noget, der gør Strings specielle i Java, er, at de er immutable.
Immutability betyder, at når et String-objekt først er oprettet, kan dets indhold ikke ændres. Enhver handling, der ser ud til at ændre en string, opretter faktisk et nyt String-objekt i baggrunden.
Eksempel
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { int stock = 20; String drink = "Espresso"; stock = 15; drink = "Cappuccino"; System.out.println(stock); // 15 System.out.println(drink); // Cappuccino } }
Selvom begge variabler blev tildelt nye værdier, opfører de sig forskelligt internt. Med int gemmer variablen direkte værdien — en ny tildeling erstatter blot den gamle. Men String er en referencetype, hvilket betyder, at variablen gemmer en adresse, der peger på et String-objekt i hukommelsen. Når drink = "Cappuccino" tildeles, ændrer Java ikke "Espresso" — der oprettes et helt nyt String-objekt, og drink peger nu på dette i stedet. Det oprindelige "Espresso"-objekt forbliver uændret.
Sådan fungerer det trin for trin
String drink = "Espresso";
Java opretter et String-objekt "Espresso", og drink peger på det.
drink = "Cappuccino";
Java opretter et nyt String-objekt "Cappuccino", og drink peger nu på det nye objekt. "Espresso" forbliver uberørt.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat