Junior — Middle
Jaké jsou rozdíly mezi třídami String a StringBuilder v Javě a v jakých situacích se doporučuje používat každou z nich?
sobes.tech AI
Odpověď od AI
V Javě se třídy String a StringBuilder používají pro práci s řetězci, ale mají odlišné vlastnosti a oblasti použití.
-
String: je neměnná (immutable) třída. Každýkrát, když se řetězec změní, vytvoří se nový objekt. To je vhodné pro řetězce, které se nemění, a zajišťuje bezpečnost v prostředí s více vlákny.
-
StringBuilder: je měnitelná třída pro práci s řetězci. Umožňuje efektivně měnit obsah řetězce bez vytváření nových objektů.
Kdy použít:
- Použijte
String, pokud se řetězec nebude měnit nebo jsou změny minimální. To zjednodušuje kód a zvyšuje bezpečnost. - Použijte
StringBuilder, když je potřeba často měnit řetězec (například v cyklech, při spojování velkého množství řetězců), abyste se vyhnuli vytváření mnoha dočasných objektů a zvýšili výkon.
Příklad:
String s = "Hello";
s += " World"; // Vytvoří se nový objekt String
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // Změní existující objekt