Onveranderlijke string in Java: alles wat u moet weten



Dit artikel biedt u een gedetailleerde en uitgebreide kennis van onveranderlijke tekenreeks in Java, waarom is het belangrijk?

Omgaan met onveranderlijke string in is een zeer belangrijk aspect in elke programmeertaal. In dit artikel bespreken we de volgende punten:

Inleiding tot onveranderlijke tekenreeks in Java

De stringpool heeft string-objecten die in de cache worden opgeslagen, waardoor de string onveranderlijk is. Meerdere clients delen de letterlijke tekenreeksen in de cache. De risico's die verbonden zijn aan het handelen van een cliënt zouden alle andere cliënten treffen.





Als een client bijvoorbeeld de tekenreekswaarde 'Test' in 'TEST' wijzigt, zien alle andere clients de gewijzigde waarde. Omdat caching van string-objecten belangrijk was voor de prestaties, vermeed de klasse Immutable String het risico. Ook, String is definitief gemaakt, zodat de invariant van de klasse String niet wordt aangetast. Voorbeeld Onveranderlijkheid, caching, berekening van hash-code gedaan door uitbreiding en overschrijving van gedragingen.

Hashmap-sleutel

De HashMap-sleutel is erg populair, onveranderlijkheid is erg belangrijk zodat het waarde-object kan worden opgehaald uit HashMap. Hashing is het principe van HashMap, dat vereist dat hetzelfde waarde heeft om goed te functioneren. Er worden twee verschillende hashcodes geproduceerd, een op het moment van invoegen en een andere op het moment dat de inhoud wordt opgehaald wanneer de inhoud wordt gewijzigd na het invoegen, waardoor mogelijk kaartwaardeobject in de kaart verloren gaat.



Hashtable-onveranderlijke tekenreeks in Java
Onveranderlijke String-klasse in Java wordt het meest gevraagd .De discussie begint met, wat is een String, hoe verschilt deze van String in C ++, en dan volgt de vraag: onveranderlijke objecten in Java, voordelen van het onveranderlijke object, wat is hun gebruik en de scenario's om ze te gebruiken.

Behoefte aan onveranderlijke string in Java

Twee redenen zijn belangrijk om te zeggen waarom de klasse Immutable String in Java is gemaakt:

1. Het is in de case helemaal niet mogelijk om één string object / literal te hebben.



hoe scannerklasse te gebruiken in java

Laten we naar het onderstaande voorbeeld verwijzen:

Er kan naar 'Test' worden verwezen door veel referentievariabelen. Als een van hen de waarde voor anderen verandert, wordt dit ook beïnvloed. Laten we eens kijken hoe.

String A = 'Test'
String B = 'Test'


String A genaamd 'Test' .toUpperCase () die hetzelfde object verandert in,'TEST'dus B zal ook 'TEST' zijn, wat niet nodig is. Hieronder ziet u een diagram dat ons vertelt hoe String wordt gemaakt in heap-geheugen en String-letterlijke pool.

2. De string werd algemeen gebruikt als parameter voor veel Java-klassen. Als we bijvoorbeeld een netwerkverbinding openen, kunnen we hostnaam en poortnummer als een tekenreeks doorgeven, voor het openen van een databaseverbinding kunnen we de database-URL als een tekenreeks doorgeven.


Een onveranderlijke string zou tot ernstige veiligheidsrisico's leiden. Iemand kan bijvoorbeeld toegang krijgen tot een bestand waartoe hij toegang heeft en vervolgens de naam van de bestandsnaam wijzigen om toegang te krijgen tot het andere bestand. In het geval van onveranderlijkheid hoeft u zich geen zorgen te maken over deze bedreigingen.

Een onveranderlijke string kan ook veilig threads delen, wat belangrijk is voor multithreaded programmeren. Een onveranderlijke stringinstantie is thread-safe in Java, dus het is niet nodig om de String-bewerking extern te synchroniseren om synchronisatieproblemen in Java te voorkomen. Een ander belangrijk punt om op te merken is het geheugenlek veroorzaakt door Substring, wat geen threadgerelateerd probleem is, maar iets om op te letten.

Hiermee komen we aan het einde van dit artikel 'Onveranderlijke tekenreeks in Java'. C ach uit de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De training- en certificeringcursus Java J2EE en SOA van Edureka is bedoeld voor studenten en professionals die Java Developer willen worden.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze blog en we nemen zo snel mogelijk contact met je op.