Sobes.tech
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