Como é que a classe String se torna imutável por baixo dos panos? É por causa da palavra reservada final na sua declaração?
Como é que a classe String se torna imutável por baixo dos panos? É por causa da palavra reservada final na sua declaração?
Isso Rafael!
O final é uma palavra reservada que define uma constante, ou seja, um valor que não poderá ser alterado.
A String no nível mais baixo é um array imutável de char. Por isso não é tão interessante modificar uma string ao longo da stack, pois quando tu a modifica o compilador faz uma cópia dela e grava onde tu deseja a utilizar.