String Immutability in Java
Svep för att visa menyn
Du vet redan att strängar lagrar text som kundnamn, produktnamn och meddelanden. Men något som gör strängar speciella i Java är att de är oföränderliga.
Oföränderlighet innebär att när ett String-objekt har skapats kan dess innehåll inte ändras. Varje operation som verkar ändra en sträng skapar egentligen ett nytt String-objekt i bakgrunden.
Exempel
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 } }
Även om båda variablerna tilldelades nya värden, beter de sig olika internt. Med int lagrar variabeln värdet direkt — en ny tilldelning ersätter helt enkelt det gamla värdet. Men String är en referenstyp, vilket innebär att variabeln lagrar en adress som pekar på ett String-objekt i minnet. När drink = "Cappuccino" tilldelas, ändrar Java inte "Espresso" — istället skapas ett helt nytt String-objekt och drink pekar nu på det. Det ursprungliga "Espresso"-objektet förblir oförändrat.
Så här fungerar det steg för steg
String drink = "Espresso";
Java skapar ett String-objekt "Espresso" och drink pekar på det.
drink = "Cappuccino";
Java skapar ett nytt String-objekt "Cappuccino", och drink pekar nu på det nya objektet. "Espresso" förblir orört.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal