AnyCompiler

Strings

Um String Java é imutável — uma vez criado, nunca pode ser mudado. Concatenar com + não modifica o string original; ele constrói e retorna um completamente novo, e .length() relata a contagem de caracteres de um string.

public class Main {
    public static void main(String[] args) {
        String first = "Hello";
        String second = "World";
        String combined = first + ", " + second + "!";
        System.out.println(combined);
        System.out.println("length = " + combined.length());
    }
}
Output
Hello, World!
length = 13

== versus .equals()

== compara referências de objects — se duas variáveis apontam para exatamente o mesmo object na memória — enquanto .equals() compara o conteúdo real. Dois objects String criados separadamente com new String(...) têm texto igual mas são objects diferentes, por isso == pode retornar false mesmo quando os strings parecem idênticos; comparar strings quase sempre significa recorrer a .equals().

public class Main {
    public static void main(String[] args) {
        String a = new String("java");
        String b = new String("java");
        System.out.println(a == b);
        System.out.println(a.equals(b));
    }
}
Output
false
true

A seguir: classes e objects — definir uma class, fields, constructors, e criar instances.

Practice exercise

Dado String s = "rust lang", use substring para extrair apenas "rust" (os primeiros 4 caracteres), depois imprima-o.