Streng-immutabilitet i Java
Sveip for å vise menyen
Du vet allerede at strenger lagrer tekst som kundenavn, produktnavn og meldinger. Men noe som gjør strenger spesielle i Java, er at de er immutable.
Immutability betyr at når et String-objekt er opprettet, kan innholdet ikke endres. Enhver operasjon som ser ut til å endre en streng, oppretter faktisk et nytt String-objekt i bakgrunnen.
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 } }
Selv om begge variablene ble tildelt nye verdier, oppfører de seg forskjellig internt. Med int lagrer variabelen verdien direkte — å tildele på nytt erstatter bare verdien. Men String er en referansetype, noe som betyr at variabelen lagrer en adresse som peker til et String-objekt i minnet. Når drink = "Cappuccino" tildeles, endrer ikke Java "Espresso" — det opprettes et helt nytt String-objekt, og drink peker nå til dette i stedet. Det opprinnelige "Espresso"-objektet forblir uendret.
Hvordan det fungerer steg for steg
String drink = "Espresso";
Java oppretter et String-objekt "Espresso" og drink peker til det.
drink = "Cappuccino";
Java oppretter et nytt String-objekt "Cappuccino", og drink peker nå til det nye objektet. "Espresso" forblir uberørt.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår