Biblioteca Padrão Java: visão geral completa
A Biblioteca Padrão Java (Java Standard Library) é um conjunto fundamental de pacotes, classes e interfaces que acompanha cada instalação do JDK (Java Development Kit). Ela fornece ao desenvolvedor tudo o que é necessário para criar aplicações: desde o trabalho com tipos de dados básicos e coleções até comunicação em rede e multithreading. Compreender esta biblioteca é a chave para o desenvolvimento eficiente em Java.
Pacotes principais da biblioteca padrão
A biblioteca é organizada em pacotes. Vamos considerar os mais importantes:
java.lang— pacote importado automaticamente, contendo classes wrapper (Integer,Double), strings (String,StringBuilder), funções do sistema (System,Math) e exceções.java.util— coleções, trabalho com datas, números aleatórios, utilitários (Arrays,Collections).java.io— fluxos de entrada e saída, trabalho com arquivos e serialização.java.nio— entrada e saída não bloqueante (New I/O), buffers e canais.java.net— programação de rede (sockets, URL, HTTP).java.util.concurrent— multithreading: executores, filas bloqueantes, variáveis atômicas.java.time(Java 8+) — API moderna para trabalho com data e hora (LocalDate,ZonedDateTime).
Pacote java.lang: a base de tudo
O pacote java.lang não requer importação explícita. Ele inclui a classe Object — a raiz da hierarquia de todas as classes. Vamos considerar os elementos-chave:
// Classe String — strings imutáveisString greeting = "Olá, Java!";String upper = greeting.toUpperCase(); // "OLÁ, JAVA!"
// StringBuilder — strings mutáveis (mais eficiente que concatenação em loop)StringBuilder sb = new StringBuilder("Hello");sb.append(" World");sb.insert(5, ",");System.out.println(sb.toString()); // "Hello, World"
// Classe Math — operações matemáticasdouble pi = Math.PI;double sqrt = Math.sqrt(144); // 12.0int max = Math.max(10, 20); // 20Atenção especial deve ser dada às classes wrapper (Integer, Boolean etc.). Elas permitem usar primitivos em coleções e fornecem métodos para conversão:
int primitive = 42;Integer wrapped = Integer.valueOf(primitive); // Autoboxingint back = wrapped.intValue(); // Unboxing
// Parse de string para númeroint parsed = Integer.parseInt("12345");System.out.println(parsed); // 12345Pacote java.util: coleções e utilitários
Este é o pacote mais extenso. Seu núcleo é o Framework de Coleções (Collections Framework):
- List — listas ordenadas:
ArrayList(acesso rápido por índice),LinkedList(inserção/remoção rápida). - Set — conjuntos sem duplicatas:
HashSet,TreeSet(ordenação). - Map — dicionários "chave-valor":
HashMap,TreeMap.
import java.util.*;
// Exemplo de trabalho com HashMapMap<String, Integer> ages = new HashMap<>();ages.put("Alice", 30);ages.put("Bob", 25);ages.put("Charlie", 35);
for (Map.Entry<String, Integer> entry : ages.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue());}
// Ordenação de listaList<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 8, 1));Collections.sort(numbers);System.out.println(numbers); // [1, 3, 5, 8]Também no pacote encon
Também na biblioteca
ORM para C++: comparação e exemplos de uso (ODB, SOCI, SQLiteCpp)
Trabalhando com S3 e armazenamento em nuvem em JavaScript (Node.js) — biblioteca @aws-sdk/client-s3
ORM para Kotlin: Exposed vs Ktor vs Ktorm — comparação e exemplos
Trabalhando com Kafka em Rust: bibliotecas e exemplos para iniciantes
Testes em C# (.NET): visão geral completa de frameworks e ferramentas