Estatísticas de hoje

Exercícios concluídos
-
Caracteres digitados Palavras digitadas
-
Tempo de exercício
-

Estatísticas gerais

Exercícios concluídos
-
Caracteres digitados Palavras digitadas
-
Tempo de exercício
-

Exercício de digitação: Programação em linguagem Java

A datilografia é importante na programação. Você será mais eficiente ao usar técnicas de digitação rápida para escrever código na linguagem de programação Java.

Vamos aprender mais sobre a linguagem Java e a datilografia ao programar em Java.

Programação em Java e datilografia

Java é uma linguagem fortemente tipada e orientada a objetos que exige precisão e consistência. Diferente do JavaScript, que é mais permissivo, ou do Python, onde a indentação define a estrutura, o Java se baseia em uma sintaxe explícita: pacotes, classes, imports, modificadores de visibilidade, generics e exceções verificadas (checked exceptions). Por isso, a digitação por toque em Java não é apenas uma forma de escrever mais rápido, mas uma habilidade essencial. Ela ajuda a evitar erros em identificadores longos, a manter a sintaxe correta de generics aninhados e a posicionar corretamente chaves e ponto e vírgula. A prática da digitação por toque e da digitação rápida em Java reduz falhas de compilação e permite que o programador se concentre mais na lógica e no design do código.

Java idiomático e convenções

Nota: "Java idiomático" Ing.: idiomatic Java refere-se ao estilo considerado natural e correto pela comunidade. Enquanto em Python se fala em código "pythonic", no Java trata-se de convenções claras: nomes de pacotes em minúsculas separados por pontos (com.example.billing), classes e interfaces em UpperCamelCase, métodos e atributos em lowerCamelCase e constantes em UPPER_SNAKE_CASE. Blocos de código são sempre delimitados por chaves, mesmo se contiverem apenas uma linha. APIs públicas geralmente são documentadas com Javadoc (/** ... */). A digitação por toque em Java ajuda a manter essas convenções com ritmo e consistência.

Pacotes, imports e nomes completamente qualificados

Um nome completamente qualificado Ing.: fully qualified name inclui todo o caminho do pacote mais o nome da classe. Se o arquivo pertence a um pacote com nome, a declaração package aparece antes das instruções import. Sem essa declaração, o arquivo pertence a um pacote sem nome. A falta de um ponto ou um erro de digitação pode causar um erro de sintaxe ou de resolução de nomes, como "cannot find symbol". A digitação rápida em Java torna a escrita de nomes longos mais fluida, enquanto a digitação por toque reduz falhas.

package com.example.payments.service;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

public class InvoiceService {
    // ...
}

Tipos, modificadores e generics

Nota: "generics" Ing.: generics permitem declarar estruturas e métodos genéricos de forma segura em tempo de compilação. Os modificadores public e private controlam o acesso aos elementos do código. Numa variável, final impede uma nova atribuição, mas não torna imutável o objeto a que ela se refere. Em tipos genéricos como List<Order>, é necessário emparelhar corretamente < e >. Estruturas aninhadas são mais complexas: Map<String, List<Integer>>. A digitação por toque em Java facilita a escrita desses padrões e a digitação rápida ajuda a corrigir erros rapidamente.

import java.util.*;

public class Repository<T> {
    private final Map<String, T> store = new HashMap<>();

    public void save(String id, T value) { store.put(id, value); }
    public Optional<T> find(String id) { return Optional.ofNullable(store.get(id)); }
}

Construtores, overloading e records

Nota: "overloading" Ing.: overloading significa definir vários métodos com o mesmo nome mas listas de parâmetros diferentes. Um "record" Ing.: record é uma forma concisa de declarar tipos imutáveis com métodos gerados automaticamente. Os campos dos componentes de um record são final, mas os objetos a que se referem podem continuar a ser modificáveis. Construtores definem as regras de inicialização. A digitação por toque em Java ajuda a colocar corretamente parênteses e vírgulas, enquanto a digitação rápida acelera o processo.

// Classe com construtor
public class Mail {
    private final String to;
    private final String subject;
    private final String body;

    public Mail(String to, String subject, String body) {
        this.to = to;
        this.subject = subject;
        this.body = body;
    }
}

// Record para tipo imutável
public record Message(String to, String subject, String body) { }

Checked exceptions e try-with-resources

Para exceções verificadas (ing.: checked exceptions), o compilador verifica se o código as trata ou as declara com throws. As exceções propriamente ditas ocorrem durante a execução. "try-with-resources" Ing.: try-with-resources garante o fechamento automático de recursos. A sintaxe exige uso preciso de parênteses e chaves. A prática de digitação por toque em Java ajuda a consolidar esse padrão.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Loader {
    public static String firstLine(String path) throws IOException {
        try (BufferedReader br = new BufferedReader(new FileReader(path))) {
            return br.readLine();
        }
    }
}

Métodos, overloading e varargs

Nota: como o Java não oferece parâmetros padrão, o overloading Ing.: overloading é utilizado. "varargs" Ing.: varargs permitem passar um número variável de argumentos com .... Essas construções requerem precisão. A digitação por toque em Java reduz erros e a digitação rápida mantém a fluidez.

public class Logger {
    public void log(String level, String msg) { System.out.println(level + ": " + msg); }
    public void log(String msg) { log("INFO", msg); }
    public void logf(String fmt, Object... args) { System.out.println(fmt.formatted(args)); }
}

Estruturas de controle e switch moderno

Nota: "switch expressions" Ing.: switch expressions usam setas (->) e podem retornar valores. Elas reduzem repetição, mas requerem atenção. A digitação por toque em Java facilita a escrita correta desses símbolos.

public class Classifier {
    public static String label(int score) {
        return switch (score / 10) {
            case 10, 9 -> "A";
            case 8 -> "B";
            case 7 -> "C";
            case 6 -> "D";
            default -> "F";
        };
    }
}

Lambdas, method references e streams

Nota: uma "lambda" Ing.: lambda é uma função anônima, como (x) -> x + 1. Uma "method reference" Ing.: method reference tem a forma Tipo::método. "streams" Ing.: streams permitem encadear operações. Esses padrões contêm muitos símbolos. A digitação por toque em Java ajuda na precisão, e a digitação rápida mantém a eficiência.

import java.util.List;

class Discounts {
    public static void main(String[] args) {
        List<Integer> prices = List.of(100, 200, 350, 400);
        int total = prices.stream()
                .map(p -> (int)(p * 0.9))
                .filter(p -> p >= 150)
                .reduce(0, Integer::sum);
        System.out.println(total);
    }
}

Igualdade, ordenação e contratos

Nota: "contracts" Ing.: contracts são regras para métodos como equals, hashCode, toString e compareTo. Eles exigem repetições e cuidado. A digitação por toque em Java mantém consistência, enquanto a digitação rápida acelera a escrita.

public final class Point implements Comparable<Point> {
    private final int x, y;
    public Point(int x, int y) { this.x = x; this.y = y; }
    @Override public int compareTo(Point o) {
        int cx = Integer.compare(this.x, o.x);
        return (cx != 0) ? cx : Integer.compare(this.y, o.y);
    }
}

Strings, text blocks e formatação

Nota: "text blocks" Ing.: text blocks são strings de múltiplas linhas delimitadas por """. A formatação é feita com String#formatted ou String.format. A prática de digitação por toque em Java facilita o uso correto de aspas e caracteres especiais.

class Reporter {
    public static void main(String[] args) {
        String report = """
                Orders Report
                -------------
                Total: %d
                """.formatted(42);
        System.out.println(report);
    }
}

Pattern matching com instanceof

Nota: "pattern matching" Ing.: pattern matching permite declarar variáveis diretamente em um teste instanceof. Isso reduz boilerplate, mas exige precisão. A digitação por toque em Java torna esse padrão mais natural.

static int len(Object o) {
    if (o instanceof String s) { return s.length(); }
    if (o instanceof java.util.List<?> list) { return list.size(); }
    return -1;
}

Módulos e visibilidade

Nota: o "Java Platform Module System" Ing.: JPMS utiliza o arquivo module-info.java. Os modificadores de visibilidade (public, protected, package-private, private) são fundamentais. A digitação por toque em Java ajuda a manter o uso consistente desses elementos.

module com.example.billing {
    exports com.example.billing.api;
    requires java.sql;
}

Concorrência e sintaxe

Nota: "concurrency" Ing.: concurrency abrange threads, pools de threads e CompletableFuture. A sintaxe utiliza muitos símbolos (<>, ->, ::). A digitação por toque em Java reduz erros e a digitação rápida mantém a produtividade.

import java.util.concurrent.CompletableFuture;

class AsyncDemo {
    public static void main(String[] args) {
        CompletableFuture<String> f =
            CompletableFuture.supplyAsync(() -> "data")
                             .thenApply(String::toUpperCase)
                             .exceptionally(ex -> "fallback");
        System.out.println(f.join());
    }
}

Anotações em Java

Nota: "annotations" Ing.: annotations são metadados marcados com @. Mesmo sem frameworks, são comuns @Override, @Deprecated e @SuppressWarnings. A prática de digitação por toque em Java permite praticar a escrita dessas anotações com precisão e ritmo.

public class User {
    private final String name;
    public User(String name) { this.name = java.util.Objects.requireNonNull(name); }

    @Override
    public String toString() { return "User{name='" + name + "'}"; }
}

Exercícios de teclado e importância

A sintaxe do Java inclui muitos símbolos: chaves para blocos, parênteses para chamadas, colchetes angulares para generics, setas e :: para elementos funcionais, vírgulas para parâmetros e ponto e vírgula para final de instruções. Com a digitação por toque em Java, o uso desses símbolos se torna automático, e a digitação rápida mantém o ritmo até em projetos grandes.

Conclusão

O Java é definido por tipos explícitos, estrutura disciplinada e convenções consolidadas. Sua sintaxe exige atenção: generics, exceções, estruturas de controle e construções funcionais. A digitação por toque em Java reduz erros e a digitação rápida em Java acelera o desenvolvimento. Essas habilidades facilitam a escrita precisa do código Java. Para verificar se o programa funciona corretamente, também é necessário compilá-lo e testá-lo.

Próximo texto
Próxima lição
Tarefa Voltar ao teste
java
Gráfico Ocultar