Strings em Java são classes especiais que representam cadeias de caracteres alfanuméricos.
A declaração, seguida ou não de inicialização, é feita conforme o exemplo:
String nome;
String flag = "fim";
Uma vez que as variáveis do tipo String são na realidade objetos, a comparação entre elas não pode ser feita usando o operador "==".
Métodos:
int length(): retorna a quantidade de elementos da string.
String nome = "bicicleta";
int i = nome.length(); // retorna 9
Operador "+" é usado para realizar a concatenação de strings.
System.out.println("O vencedor é" + vencedor);
boolean equals(String): retorna o resultado da comparação do conteúdo de duas Strings.
String S1 = "Fim";
String S2 = "Fim";
S1.equals(S2) // retorna true.
Um dos principais objetivos de uma boa linguagem de programação é fazer uso eficiente de memória, e com Java não poderia ser diferente. Por isso, poderíamos pensar que a comparação "s1 == s2" retorna false, mas não é bem assim.
A JVM possui uma área de memória conhecida como "pool", e toda vez que o compilador encontra uma nova string literal, ele verifica se essa string já existe no "pool". Se a string já existir, a referência para a nova string é direcionada para a string existente, fazendo com que um novo objeto do tipo String não seja criado.

See you later!