Declarando uma String em Java
Uma string em Java é uma string de valores (texto e / ou números). Também é uma String, com S maiúsculo, o que significa que é um objeto. Portanto, ambas as linhas de código são igualmente válidas. Eles criam dois objetos diferentes e, embora os valores sejam os mesmos, veremos por que está tudo bem. Vamos explorar cada opção e o que está acontecendo em Java.
String employee1 = "Jane Austen"
String employee2 = new String ("Jane Austen");
Declarar um literal de string
A primeira opção cria uma string literal , o que significa que employee1 agora é ‘Jane Austen’. Quando você cria uma string literal, Java examina a memória para ver se há outras strings ‘Jane Austen’ e, caso não haja, cria uma nova. Se essa string já existe, ele apenas reutiliza esse valor da memória. Por exemplo, se você criou um employee783 e definiu seu valor como ‘Jane Austen’, Java compartilharia a string literal que já está na memória. Esse espaço na memória é chamado de pool constante . Vamos examinar o código novamente. A variável employee1 é definida com um valor literal.
String employee1 = "Jane Austen";
Criação de uma nova instância
A declaração de string para employee2 ainda invoca a classe String, mas Java faz isso automaticamente, criando uma referência a esse objeto String em segundo plano. Podemos dar outra olhada no código, que cria uma nova instância da classe String.
String employee2 = "Jane Austen"
Ao criar uma instância da classe String, você ignora essa pesquisa de memória. Em vez disso, você cria uma instância da classe String. A variável employee2 pode ser ‘Jane Austen’; o mesmo poderia acontecer com o funcionário352 ! Eles são objetos separados. Portanto, se você criar outra instância da classe String, chame-a de employee783 e atribua a ela o valor ‘Jane Austen,’ Java cria outra instância; ele não extrai cordas que já estão na memória.
Finalmente, como esta é uma nova instância de uma classe, você realmente não precisa fornecer um valor para a string. Na verdade, você também não precisa de um para a declaração literal. No entanto, é uma boa prática declarar as strings conforme necessário. Portanto, é importante dar um valor a uma string quando ela é declarada.
Verificando a Igualdade
Aqui está a parte interessante. Temos dois funcionários, funcionário1 e funcionário2 . Eles são iguais, certo? Bem, vamos descobrir. Podemos adicionar o seguinte código para verificar se esses dois objetos são iguais:
String funcionário1 = nova String ("Jane Austen");
String employee2 = "Jane Austen";
if (funcionário1 == funcionário2) {
System.out.println ("igual");
} else {
System.out.println ("Não é igual");
}
No entanto, embora os valores sejam iguais para ambos os objetos, eles não são iguais.
![]() |
Eles não são iguais porque são dois objetos separados. Para verificar a igualdade, podemos usar o método equals () na classe String. Isso é abordado em Java mais avançado, mas o código básico é o que você pode ver abaixo, e é importante observar que o resultado imprimiria um ‘Verdadeiro’.
booleano igual;
igual = funcionário1.equals (funcionário2);
System.out.println (igual);
Existem diferentes escolas de pensamento sobre qual método usar para declarar Strings. Quando você cria um novo objeto String, ele ocupa um pouco mais de espaço na memória. Uma string literal é um único objeto String com uma referência (como employee1 ). Quando Java cria o objeto String, por outro lado, ele cria não apenas um objeto String, mas o nome da variável se refere a esse objeto ( funcionário2 ) e cria um valor literal (‘Jane Austen’).
Independentemente do método escolhido para declarar strings, Java fornece vários métodos para manipulação de strings. Existem métodos para comparação, atualização, concatenação e até mesmo desmontagem de strings.
Resumo da lição
Vamos recapitular brevemente o que aprendemos sobre strings e declaração de strings em Java. Uma string em Java é uma string de valores (texto e / ou números). Uma string literal manterá seu valor no programa. Depois de definido, está definido. Quando você cria uma instância de String, ela cria um novo objeto String, seja reutilizando o valor da memória ou compartilhando a string literal que já está na memória. Esse espaço na memória é chamado de pool constante . Qualquer que seja o método escolhido para declarar uma string, existem vários métodos disponíveis para trabalhar com strings, ferramentas para comparação, modificação, concatenação e desmontagem de strings.