Immutable String in Java: All you need to know

Tento článek vám poskytne podrobné a komplexní znalosti Immutable String v Javě, Proč je to důležité?

Nakládání s nezměnitelným řetězcem je velmi důležitý aspekt v každém programovacím jazyce. V tomto článku probereme následující ukazatele:

Úvod do Immutable String v Javě

Fond řetězců obsahuje objekty řetězce, které jsou ukládány do mezipaměti kvůli tomu, který řetězec je neměnný. Řetězcové literály uložené v mezipaměti sdílí více klientů. Rizika spojená s jednáním jednoho klienta by ovlivnila všechny ostatní klienty.





Například když klient změní hodnotu řetězce „Test“ na „TEST“, všichni ostatní klienti uvidí změněnou hodnotu. Protože ukládání do mezipaměti řetězcových objektů bylo důležité pro výkon, třída Immutable String se riziku vyhla. Taky, Řetězec byl vytvořen konečný, takže invariant třídy String nebude ohrožen. Příklad Immutability, Caching, výpočet hash kódu provedený rozšířením a přepsáním chování.

faktoriál řady java

Klíč Hashmap

Klíč HashMap je velmi populární, neměnnost je velmi důležitá, aby bylo možné načíst objekt hodnoty z HashMap. Hashing je princip HashMap, který vyžaduje správnou funkci, aby fungoval správně. Dva různé hashcodes jsou produkovány jeden v době vložení a druhý v době načítání, když je obsah upraven po vložení, což potenciálně ztratí objekt hodnoty mapy v mapě.



Hashtable-Immutable String v Javě
Nejčastěji je požadována třída Immutable String v Javě .Diskuse začíná tím, co je to String, čím se liší od Stringu v C ++, a poté následuje otázka, jsou to neměnné objekty v Javě, výhody neměnného objektu, jaké je jejich použití a scénáře jejich použití.

Potřeba Immutable String v Javě

Je důležité říci dva důvody, proč se třída Immutable String vyrábí v Javě:

1. Není vůbec možné mít jeden řetězcový objekt / literál.



Podívejme se na níže uvedený příklad:

Na „Test“ lze odkazovat pomocí mnoha referenčních proměnných. Pokud některý z nich změní hodnotu pro ostatní, bude to také ovlivněno. Uvidíme, jak na to.

Řetězec A = 'Test'
Řetězec B = 'Test'


Řetězec A nazvaný „Test“ .toUpperCase (), který změní stejný objekt na,'TEST'takže B bude také „TEST“, který není nutný. Níže je diagram, který nám říká, jak je String vytvořen v paměti haldy a String literální fond.

příkaz if v dotazu sql

2. Řetězec byl široce používán jako parametr pro mnoho tříd Java. Když například otevřete síťové připojení, můžeme předat název hostitele a číslo portu jako řetězec, pro otevření připojení k databázi můžeme předat adresu URL databáze jako řetězec.


Neměnný řetězec by vedl k vážným bezpečnostním hrozbám. Například někdo může přistupovat k souboru, ke kterému má přístup, a poté změnit název názvu souboru, aby získal přístup k druhému souboru. V případě neměnnosti se těchto hrozeb nemusíte obávat.

Neměnný řetězec může bezpečně sdílet také vlákna, což je důležité pro programování s více vlákny. Neměnná instance řetězce je v Javě bezpečná, takže není nutné externě synchronizovat operaci řetězce, aby se předešlo problémům se synchronizací v Javě. Dalším důležitým bodem, který je třeba si uvědomit, je únik paměti způsobený Substringem, který není problémem souvisejícím s vlákny, ale je třeba si toho být vědom.

Tímto se dostáváme na konec tohoto článku „Immutable String in Java“. C sakra Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Školicí a certifikační kurz Edureka Java J2EE a SOA je určen pro studenty a profesionály, kteří chtějí být vývojářem Java.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu a my se vám ozveme co nejdříve.