Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele String Immutability in Java | Merkkijonot
Johdatus Javaan

String Immutability in Java

Pyyhkäise näyttääksesi valikon

Tiedät jo, että String-tyyppiset muuttujat tallentavat tekstiä, kuten asiakasnimiä, tuotenimiä ja viestejä. Yksi asia, joka tekee String-olioista erityisiä Javassa, on niiden muuttumattomuus.

Muuttumattomuus tarkoittaa, että kun String-olio on luotu, sen sisältöä ei voi muuttaa. Kaikki toiminnot, jotka vaikuttavat muuttavan merkkijonoa, luovatkin taustalla uuden String-olion.

Esimerkki

Main.java

Main.java

123456789101112131415
package 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 } }

Vaikka molemmat muuttujat uudelleenmääriteltiin, ne käyttäytyvät sisäisesti eri tavoin. int-tyypissä muuttuja tallentaa arvon suoraan — uudelleenmäärittely vain korvaa sen. Mutta String on viitetyyppi, eli muuttuja tallentaa osoitteen, joka viittaa muistissa olevaan String-olioon. Kun drink = "Cappuccino" asetetaan, Java ei muuta "Espresso"-oliota — se luo täysin uuden String-olion ja saa drink-muuttujan viittaamaan siihen. Alkuperäinen "Espresso"-olio pysyy muuttumattomana.

Miten se toimii vaihe vaiheelta

String drink = "Espresso";

Java luo String-olion "Espresso" ja drink viittaa siihen.

drink = "Cappuccino";

Java luo uuden String-olion "Cappuccino", ja drink viittaa nyt uuteen olioon. "Espresso" pysyy koskemattomana.

question mark

Mitä tarkoittaa, että Stringit ovat muuttumattomia (immutable) Javassa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 1
some-alt