String jest niemutowalny, aby można go było bezpiecznie współdzielić między wątkami, buforować i internować w puli Stringów oraz używać jako klucz w kolekcjach hashujących (stały hashCode). Zwiększa to też bezpieczeństwo, bo np. nazwy klas czy ścieżki nie mogą zostać zmienione po utworzeniu.