Immutable String in Java: Allt du behöver veta



Den här artikeln ger dig en detaljerad och omfattande kunskap om Immutable String i Java, varför är det viktigt?

Hantera oföränderlig sträng i är en mycket viktig aspekt i alla programmeringsspråk. I den här artikeln kommer vi att diskutera följande tips:

Introduktion till oföränderlig sträng i Java

Strängpoolen har strängobjekt som cachas på grund av vilka strängar är oföränderliga. Flera klienter delar cachade stränglitteraler. Riskerna i en kunds handling påverkar alla andra kunder.





Till exempel, när en klient ändrar strängvärdet 'Test' till 'TEST', kommer alla andra klienter att se det ändrade värdet. Eftersom cachning av strängobjekt var viktigt för prestanda undviker klassen Immutable String risken. Också, Sträng gjordes slutgiltig så att invarianten i strängklassen inte komprometteras. Exempel Immutabilitet, Caching, hashkodsberäkning görs genom förlängning och åsidosättande av beteenden.

Hashmap-tangent

HashMap-nyckeln är väldigt populär, oföränderlighet är mycket viktig så att värdeobjektet kan hämtas från HashMap. Hashing är principen för HashMap, som kräver att samma har värde för att fungera korrekt. Två olika hashkoder produceras en vid tidpunkten för införandet och andra vid tidpunkten för hämtning när innehållet modifieras efter införandet, vilket potentiellt förlorar kartvärdeobjekt på kartan.



Hashtable-Immutable String i Java
Immutable String class i Java är den vanligaste frågan .Diskussionen börjar med, vad är en sträng, hur den skiljer sig från sträng i C ++, och sedan följer frågan om oföränderliga objekt i Java, fördelarna med det oföränderliga objektet, vad är deras användning och scenarierna för att använda dem.

hur man gör en hög i java

Behov av oföränderlig sträng i Java

Två skäl är viktiga för att säga varför Immutable String-klassen skapas i Java:

1. Det är inte alls möjligt att ha ett strängobjekt / bokstav.



is-a och har-en relation i java

Låt oss hänvisa till nedanstående exempel:

”Test” kan hänvisas med många referensvariabler. Om någon av dem ändrar värdet för andra påverkas detta också. Låt oss se hur.

Sträng A = 'Test'
Sträng B = 'Test'


Sträng A kallad 'Test' .toUpperCase () som ändrar samma objekt till,'TESTA'så B kommer också att vara 'TEST' vilket inte behövs. Nedan finns ett diagram som berättar hur String skapas i heapminne och String-bokstav.

2. Strängen hade i stor utsträckning använts som en parameter för många Java-klasser. När vi till exempel öppnar en nätverksanslutning kan vi skicka värdnamn och portnummer som en sträng, för att öppna databasanslutning kan vi skicka databas-URL som en sträng.


En oföränderlig sträng skulle leda till allvarliga hot mot säkerheten. Till exempel kan någon komma åt en fil som han har tillgång till och sedan ändra namnet på filnamnet för att få tillgång till den andra filen. Vid oföränderlighet behöver du inte oroa dig för dessa hot.

hur man använder tjänsten nu

En oföränderlig sträng kan också säkert dela trådar, vilket är viktigt för flertrådad programmering. En oföränderlig stränginstans är trådsäker i Java, så du behöver inte synkronisera strängåtgärden externt för att undvika synkroniseringsproblem i Java. En annan viktig punkt att notera är minnesläckan orsakad av Substring, som inte är en trådrelaterad fråga utan något att vara medveten om.

Med detta kommer vi till slutet av denna artikel 'Immutable String in Java'. C heck ut av Edureka, ett pålitligt online-lärande företag med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för studenter och yrkesverksamma som vill bli Java-utvecklare.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.