A Classe String

No Java, String é um objeto representado como uma sequência de caracteres. Manipular “cadeias” de caracteres é um aspecto fundamental da maioria das linguagens de programação. A implementação de strings como objetos internos permite que o Java forneça um complemento completo de recursos que tornam conveniente o manuseio de strings. Por exemplo, Java possui métodos para comparar duas cadeias, procurar uma subsequência, concatenar duas cadeias e alterar o caso das letras em uma cadeia. A classe String possui 11 construtores e mais de 40 métodos utilitários. Objetos de sequência são meios imutáveis. Após a criação de um objeto, não é possível alterar os caracteres que compõem essa sequência. Isso não é uma limitação da classe String, mas será muito útil em um aplicativo multithread. Você pode executar toda a operação em seu objeto String, apenas as coisas alteradas, se um novo objeto String for criado a cada vez. Essa abordagem é usada porque cadeias fixas e imutáveis podem ser implementadas com mais eficiência do que as variáveis.

Criando um objeto String

Em Java, strings são objetos. Assim como outros objetos, você pode criar uma instância de uma String com a nova palavra-chave, da seguinte maneira:

Passo 1

String nome = new String (“Abel”);String nome = “Abel”;

Essa linha de código cria um objeto da classe String e o atribui ao nome da variável de referência. Existem algumas diferenças vitais entre essas opções que discutiremos mais adiante, mas o que elas têm em comum é que ambas criam um novo objeto String, com o valor “Abel”, e o atribuem a um nome de variável de referência. Agora, digamos que você queira uma segunda referência ao objeto String referido por s, e estamos chamando o método concat no nome do objeto, isso criará um novo objeto String com o valor “Abel”, enquanto a referência s2 ainda aponta para o objeto “Abel ”.

Passo 2

String s2 = nome; // refere-se s2 à mesma String que nome

Passo 3

nome = nome.concat (" Cardoso"); // o método concat () ‘acrescenta’ um literal ao final

Vamos entender esse conceito graficamente,

Etapa 1 e Etapa 2

Etapa 3

Como sabemos que as cadeias nos objetos do tipo String são imutáveis, significa que o conteúdo da instância da String não pode ser alterado após a criação. No entanto, uma variável declarada como referência de String pode ser alterada para apontar para outro objeto String a qualquer momento.

Comparando Referência de Objetos de String

Como vimos anteriormente, o objeto String pode ser criado usando o construtor, usando uma nova palavra-chave, assim como podemos usar literais String. Há uma diferença fundamental entre os dois modos de criação de String. Vamos entender isso com a ajuda do programa Java. Estamos criando dois objetos String usando literais e dois objetos chamando o construtor da classe String. Estamos comparando objetos String usando o operador ==.