De ontwikkelaars van Java ontworpen de " String " klasse als een onveranderlijke object . " Onveranderlijk " betekent dat de waarde van de klasse niet kan veranderen zodra de programmeur instantieert het object . Hoewel het voordelig lijkt altijd een String object dat een veranderlijke waarde heeft enkele redenen waarom dit niet het geval . Onveranderlijke strings lenen zich voor gebruik in multi - threaded programma's , te verhogen programma voor de beveiliging , het minimaliseren van het geheugengebruik , en beter werken als waarden in data structuren zoals hashtables . Strings in multi-threaded programma Programma zijn multi- threaded genoemd wanneer ze paaien wat bekend staat als " draden" die code tegelijkertijd worden uitgevoerd . Wanneer een programma spawnt meerdere threads , die draden werken vaak dezelfde variabelen op verschillende tijdstippen . Het gevaar is wanneer twee threads delen een variabele , en een thread veranderingen zijn waarde , terwijl de tweede gebruikt het nog steeds . Een " locking " mechanisme bewaakt doorgaans variabelen in threading situaties . Met een onveranderlijke reeks echter een thread is niet bezig met de waarde van de variabele . Veiligheid De onveranderlijkheid van de snaren helpt ook met bepaalde veiligheidsproblemen . Wanneer een gebruiker login gegevens op een website , het is theoretisch mogelijk voor hem om de waarde van de gebruikersnaam of het wachtwoord touwtje wijzigen voordat dit wordt doorgegeven aan het systeem . Als dit gebeurt , dan is dat de gebruiker kan kwaadaardige code te injecteren om het systeem dat hij of zij is in te loggen op . Omdat strings zijn onveranderlijk , is dit echter niet mogelijk . Geheugengebruik beperken Wanneer een programmeur creëert een string object , dat object zich bevindt in een vaste punt in het geheugen , en de naam van de variabele fungeert als zijn " referentie. " Omdat de verwijzing naar het geheugen en hoe het geheugen bevat twee afzonderlijke dingen , betekent dit dat andere variabele namen ook dezelfde geheugenlocatie kan verwijzen . Dus wanneer u een kopie van een string nodig zijn, kunnen verschillende variabelen dezelfde onveranderlijke tekenreeks verwijzen , en omdat het niet zal veranderen , geen behoefte hebben aan kopieën van dezelfde snaar te creëren . Gebruik in HashTable datastructuren hashtables worden " woordenboeken " , omdat ze gebruik maken van keyword - waarde paren om het zoeken naar de datastructuur makkelijker . Snaren meestal verwijzen naar een waarde ( zoals " name" = > " Robert " of " age" = > 25 ) . Omdat strings zijn onveranderlijk , doet een programmeur geen zorgen te maken over het zoekwoord van een waarde te veranderen , en het verliezen van de toegang tot die waarde .
|