Um dos problemas indicados por novos utilizadores é o facto de não conhecerem os packages principais da linguagem. Dado que a plataforma Java é extensa, é complicado conhecer todas as classes existentes e as suas várias funcionalidades, portanto, será também difícil que esta página agregue toda a informação existente sobre as classes da plataforma, no entanto, vamos tentar olhar para as mais comuns.
O quadro seguinte procura indicar os packages e classes mais comuns. O leitor deve ter em atenção que este quadro apresenta apenas uma porção muito pequena do que a plataforma oferece, ficando de fora muitas classes úteis.
Package / Classe / Interface | Descrição |
---|---|
java.awt | Toolkit gráfico AWT. Toolkit mais antigo mas cujo package contém várias classes úteis, nomeadamente para acesso e manipulação de Imagens usado em Java2D e classes para criação de componentes a usar em interfaces gráficas com o utilizador. |
java.awt.geom | Classes para manipulação de formas geométricas, particularmente úteis quando usados em conjunto com Java 2D. |
javax.crypto | Package de criptografia, contendo algoritmos de encriptação e de hashing. |
javax.imageio | Package específico para manipulação de imagens com especial cuidado na performance. |
java.lang.reflect | Package com API para uso em reflexão. Tipicamente usada por frameworks que gerem código criado pelos programadores, tal como o sistema de ORM1) |
java.math | Classe usadas em problemas matemáticos, incluí também classes para representar números com maior precisão que os tipos primitivos. |
javax.net | Acesso a sockets seguros. Se o programa necessita de usar sockets, este é o package a incluir. |
java.nio | Acesso optimizado a ficheiros, esta é uma API de nível mais baixo que a java.io, oferecendo também mais performance. Esta performance vem, naturalmente, com a perda de alguma facilidade de desenvolvimento. |
javax.sound | Acesso e manipulação de som. A plataforma standard suporta um conjunto limitado de formatos de som, sendo necessário usar a extensão Java Media Framework para possibilitar a manipulação de formatos não suportados. |
java.sql | Package para JDBC. Permite o acesso a bases de dados relacionais2). |
javax.swing | Toolkit gráfico Swing. Criado em cima do AWT, oferece melhores interfaces, mais controlos gráficos, mais estabilidade e portabilidade, além de um desenvolvimento mais simples e rápido. Actualmente é mais comum que os IDEs3) ofereçam uma forma de criar interfaces que não implique a criação directa de código, pelo que este package, apesar de extremamente útil, começa a ser cada vez mais desconhecido. |
java.util | Package que oferece muitas classes utilitárias como compressão em formato zip e criação e manipulação de ficheiros jar. |
java.util.Collections | Estruturas de dados como listas, filas, pilhas, tabelas de hash, vectores, etc. |
Existem mais packages na plataforma Java, algumas APIs não são distribuídas com o JDK standard mas podem ser obtidas em downloads separados, e esta lista, mesmo centrando-se apenas nos packages standard não é exaustiva. Fica para o leitor a descoberta da API standard completa e das APIs extra existentes, que pode iniciar em Java SE Technologies at a Glance e em Java™ Platform, Standard Edition 6 API Specification