Muuttamaton merkkijono Java: Kaikki mitä sinun tarvitsee tietää



Tämä artikkeli antaa sinulle yksityiskohtaisen ja kattavan tiedon Java: n muuttamattomasta merkkijonosta, miksi se on tärkeää?

Käsitteleminen muuttumattomalla kielellä on erittäin tärkeä näkökohta kaikilla ohjelmointikielillä. Tässä artikkelissa keskustellaan seuraavista viitteistä:

Johdatus Java: n muuttumattomaan merkkijonoon

Merkkijonopoolissa on merkkijono-objekteja, jotka ovat välimuistissa, mikä merkkijono on muuttumaton. Useat asiakkaat jakavat välimuistissa olevat merkkijonolitraalit. Yhden asiakkaan toimintaan liittyvät riskit vaikuttavat kaikkiin muihin asiakkaisiin.





Esimerkiksi, kun asiakas muuttaa merkkijonon arvon 'Test' arvoksi 'TEST', kaikki muut asiakkaat näkevät muutetun arvon. Koska merkkijonojen välimuistiin tallentaminen oli tärkeää suorituskyvyn kannalta, Immutable String -luokka vältteli riskiä. Myös, Merkkijono tehtiin lopulliseksi, jotta String-luokan invariantti ei vaarannu. Esimerkki muuttumattomuudesta, välimuistista, hajautuskoodilaskennasta, joka suoritetaan käyttäytymien laajennuksella ja ohituksella.

mikä on Salesforce-palvelupilvi

Hashmap-avain

HashMap-avain on erittäin suosittu, muuttumattomuus on erittäin tärkeää, jotta arvo-objekti voidaan noutaa HashMapista. Hajautus on HashMapin periaate, joka vaatii, että samalla on arvo toimiakseen oikein. Kaksi erilaista hajakoodia tuotetaan yksi lisäyshetkellä ja toinen hakuhetkellä, kun sisältöä muokataan lisäyksen jälkeen, mikä mahdollisesti menettää kartan arvo-objektin kartalla.



Hashtable-Immutable-merkkijono Java-kielellä
Java: n muuttamaton merkkijono-luokka kysytään yleisimmin .Keskustelu alkaa siitä, mikä on merkkijono, miten se eroaa merkkijonosta C ++: ssa, ja seuraava kysymys on Java: n muuttamattomat objektit, muuttumattoman kohteen edut, mikä on niiden käyttö ja skenaariot niiden käyttämiseksi.

Tarve muuttumattomalle merkkijonolle Javassa

Kaksi syytä on sanoa, miksi Immutable String -luokka tehdään Java:

1. Siinä ei ole lainkaan mahdollista, että sinulla on yksi merkkijono-objekti / literaali.



Tarkastellaan seuraavaa esimerkkiä:

'Testiin' voidaan viitata monilla viitemuuttujilla. Jos joku heistä muuttaa arvoa muille, myös tämä vaikuttaa. Katsotaanpa miten.

Merkkijono A = 'Test'
Merkkijono B = 'Test'


Merkkijono A kutsutaan 'Test' .toUpperCase (): ksi, joka muuttaa saman objektin'TESTATA'joten B on myös 'TEST', jota ei tarvita. Alla on kaavio, joka kertoo meille, kuinka merkkijono luodaan kasan muistiin ja merkkijonon kirjaimelliseen pooliin.

Voiko rakentaja olla yksityinen

2. Merkkijonoa on käytetty laajalti parametrina monissa Java-luokissa. Esimerkiksi kun avaat verkkoyhteyden, voimme välittää isäntänimen ja portin numeron merkkijonona, tietokantayhteyden avaamiseksi voimme välittää tietokannan URL-osoitteen merkkijonona.


Muuttamaton merkkijono johtaisi vakaviin turvallisuusuhkiin. Esimerkiksi joku voi käyttää tiedostoa, johon hänellä on käyttöoikeus, ja muuttaa sitten tiedostonimen nimeä saadakseen pääsyn toiseen tiedostoon. Muuttamattomuuden tapauksessa ei tarvitse huolehtia näistä uhista.

Muuttamaton merkkijono voi myös jakaa ketjut turvallisesti, mikä on tärkeää monisäikeiselle ohjelmoinnille. Muuttamaton merkkijono-ilmentymä on Java-ketjussa turvallinen, joten sinun ei tarvitse synkronoida merkkijonotoimintoja ulkoisesti, jotta vältetään Java-synkronointiongelmat. Toinen tärkeä huomioitava asia on Substringin aiheuttama muistivuoto, joka ei ole ketjuun liittyvä asia, mutta joka on tietoinen.

Tämän avulla olemme tämän 'Immutable String in Java' -artikkelin lopussa. C helvetti Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssi on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä.

Onko sinulla kysymys meille? Mainitse se tämän blogin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.