? Udviklerne af Java designede " String " klasse som en uforanderlig objekt. " Uforanderlige " betyder, at værdien af klassen ikke kan ændres, når programmøren instantiates objektet . Selv om det synes gavnligt for altid bruge en String objekt, der har en foranderlig værdi , et par grunde hvorfor dette ikke er tilfældet. Uforanderlige strings egner sig til brug i multi -threaded programmer , øger programmet sikkerheden , minimerer hukommelsesforbrug , og arbejde bedre som værdier i datastrukturer såsom HashTables . Strings i multi-threaded programmer
programmer kaldes multi-threaded , når de gyder , hvad der er kendt som "tråde ", som kører kode samtidig. Når et program gyder flere tråde , disse tråde ofte arbejder på de samme variabler på forskellige tidspunkter . Faren er, når to tråde deler en variabel og en tråd ændrer værdi , mens den anden stadig anvender det. A " låse " mekanisme typisk vogter variabler i threading situationer. Med en uforanderlig snor , men en tråd er ikke bekymret med værdien af den variable .
Security
uforanderlighed strenge hjælper også med visse sikkerhedsproblemer. Når en bruger indtaster loginoplysninger på en hjemmeside , er det teoretisk muligt for ham at ændre værdien af brugernavn eller adgangskode string før det passerer til systemet. Hvis dette sker , så at brugeren kan tilføre skadelig kode på systemet, skal han eller hun logger på . Da strenge er uforanderlige , men dette er ikke muligt .
Minimer Hukommelsesanvendelse
Når en programmør opretter en streng objekt , at objektet er bosat i en fast punkt i hukommelsen , og den variable navn tjener som sin "reference ". Fordi henvisningen til hukommelsen , og hvad hukommelsen indeholder er to separate ting , betyder det, at andre variable navne også kan henvise til samme hukommelse. Så når eksemplarer af en streng er påkrævet, kan forskellige variabler henvise til samme uforanderlige strengen , og da det ikke vil ændre sig, har ikke behov for at lave kopier af den samme streng.
Anvendelse i hashtabelsamling Datastrukturer
HashTables kaldes " ordbøger " , fordi de bruger søgeords- værdi-par for at gøre søgningen datastrukturen lettere. Strings normalt referere til en værdi ( såsom " name" => " Robert " eller " age" => 25). Da strenge er uforanderlige , er en programmør ikke at bekymre sig om nøgleordet for en værdi ændrer sig, og miste adgangen til denne værdi.