Immutable String in Java: All you need to know



Tento článok vám poskytne podrobné a komplexné znalosti o Immutable String v Jave. Prečo je to dôležité?

Zaobchádzanie s nezmeniteľným reťazcom vo Windows je veľmi dôležitý aspekt v ktoromkoľvek programovacom jazyku. V tomto článku sa budeme zaoberať nasledujúcimi ukazovateľmi:

Úvod do Immutable String v Jave

Fond reťazcov obsahuje objekty reťazcov, ktoré sa ukladajú do medzipamäte kvôli tomu, ktorý reťazec je nemenný. Viacerí klienti zdieľajú reťazcové literály uložené v pamäti. Riziká spojené s činnosťou jedného klienta by ovplyvnili všetkých ostatných klientov.





Napríklad keď klient zmení hodnotu reťazca „Test“ na „TEST“, všetkým ostatným klientom sa zmenená hodnota zobrazí. Pretože ukladanie do pamäte cache bolo dôležité pre výkon, trieda Immutable String sa vyhla riziku. Tiež Reťazec bol urobený konečným, takže invariant triedy String nebude ohrozený. Príklad Nezmeniteľnosť, Ukladanie do pamäte cache, výpočet hash kódu vykonaný rozšírením a prepísaním správania.

plat vývojára v jave v indii

Hashmapový kľúč

Kľúč HashMap je veľmi populárny, nemennosť je veľmi dôležitá, aby bolo možné získať hodnotový objekt z HashMap. Hašovanie je princíp HashMap, ktorý vyžaduje, aby mal rovnaký funkčné vlastnosti. Vyrábajú sa dva rôzne hashkódy, jeden v čase vkladania a druhý v čase načítania, keď sa obsah po vložení upravuje, čo môže stratiť objekt hodnoty mapy v mape.



Hashtable-Immutable String v Jave
Najčastejšie sa žiada trieda Immutable String v Jave .Diskusia začína tým, čo je to String, v čom sa líši od String v C ++, a potom nasleduje otázka, ktoré sú nemenné objekty v Jave, výhody nemenného objektu, aké je ich použitie a scenáre ich použitia.

Potreba Immutable String v Jave

Je dôležité povedať dva dôvody, prečo sa trieda Immutable String vyrába v Jave:

1. Nie je možné vôbec mať jeden reťazcový objekt / literál.



Pozrime sa na nasledujúci príklad:

Na „Test“ sa dá odkazovať pomocou mnohých referenčných premenných. Ak ktorákoľvek z nich zmení hodnotu pre ostatných, bude to tiež ovplyvnené. Pozrime sa, ako na to.

Reťazec A = 'Test'
Reťazec B = 'Test'


Reťazec A s názvom „Test“ .toUpperCase (), ktorý zmení rovnaký objekt na,„TEST“takže B bude tiež “TEST”, ktorý nie je potrebný. Ďalej je uvedený diagram, ktorý nám hovorí, ako sa reťazec vytvára v halde pamäte a doslovnom fonde reťazca.

čo sú veľké dáta a hadoop

2. Reťazec sa široko používal ako parameter pre mnoho tried Java. Napríklad keď otvoríme sieťové pripojenie, môžeme zadať názov hostiteľa a číslo portu ako reťazec, na otvorenie pripojenia k databáze môžeme zadať adresu URL databázy ako reťazec.


Nezmeniteľný reťazec by viedol k vážnym bezpečnostným hrozbám. Napríklad niekto môže získať prístup k súboru, ku ktorému má prístup, a potom zmeniť názov súboru, aby získal prístup k druhému súboru. V prípade nemennosti sa týchto hrozieb netreba obávať.

Nezmeniteľný reťazec môže bezpečne zdieľať aj vlákna, čo je dôležité pre programovanie viacerých vlákien. Nezmeniteľná inštancia reťazca je v Jave bezpečná pre vlákna, takže nie je potrebné externe synchronizovať operáciu String, aby sa zabránilo problémom so synchronizáciou v Jave. Ďalším dôležitým bodom, ktorý je potrebné poznamenať, je únik pamäte spôsobený Substringom, ktorý nie je problémom súvisiacim s vláknami, ale je potrebné si ho uvedomiť.

Týmto sa dostávame na koniec tohto článku „Immutable String in Java“. C. sakra autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je určený pre študentov a profesionálov, ktorí chcú byť vývojármi Java.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov tohto blogu a my sa vám ozveme čo najskôr.