Pesquisa · Mapa mental

Java Platform, Standard Edition

Java Platform, Standard Edition é uma plataforma de computação, padrão técnico para execução de aplicações em plataformas independentes suportadas por Java, como código portável para ambientes desktop e servidores. Java SE era anteriormente conhecido como Java 2 Platform, Standard Edition (J2SE).

Fonte: Wikipédia (pt)Atualizado em 10/10/2026
01

Nomenclatura, padrões e especificações

Imagem: yuichi.sakuraba · BY-NC · Openverse

A plataforma era conhecida como Java 2 Platform, Standard Edition ou J2SE a partir da versão 1.2, até que o nome foi alterado para Java Platform, Standard Edition ou Java SE na versão 1.5. O "SE" é usado para distinguir a plataforma base das edições Enterprise (Java EE) e Micro (Java ME). O "2" foi originalmente destinado a enfatizar as grandes mudanças introduzidas na versão 1.2, mas foi removido na versão 1.6. A convenção de nomenclatura foi alterada várias vezes ao longo da história de versões do Java. A partir do J2SE 1.4 (Merlin), o Java SE foi desenvolvido sob o Java Community Process, que produz descrições de especificações propostas e finais para a plataforma Java chamadas Java Specification Requests (JSR). O JSR 59 foi a especificação guarda-chuva para o J2SE 1.4 e o JSR 176 especificou o J2SE 5.0 (Tiger). O Java SE 6 (Mustang) foi lançado sob o JSR 270. Java Platform, Enterprise Edition (Java EE) é uma especificação relacionada que inclui todas as classes do Java SE, mais várias que são mais úteis para programas executados em servidores em vez de estações de trabalho.

02

Pacotes de propósito geral

Imagem: yuichi.sakuraba · BY-NC · Openverse

A maioria desses pacotes é exportada pelo módulo java.base do Sistema de Módulos da Plataforma Java (desde o Java 9). Estruturas de dados que agregam objetos são o foco do pacote java.util. Incluído no pacote está a API de Coleções, uma hierarquia de estruturas de dados organizada fortemente influenciada por considerações de padrões de projeto.

java.lang

O pacote Java java.lang contém classes fundamentais e interfaces intimamente ligadas à linguagem e ao sistema de tempo de execução. Isso inclui as classes raiz que formam a hierarquia de classes, tipos ligados à definição da linguagem, exceções básicas, funções matemáticas, threads, funções de segurança, bem como algumas informações sobre o sistema nativo subjacente. Este pacote contém 22 das 32 classes java.lang.Error fornecidas no JDK 6. As principais classes e interfaces em java.lang são: Classes em java.lang são automaticamente importadas em todos os arquivos fonte. O pacote java.lang.ref fornece tipos mais flexíveis de referências do que os disponíveis de outra forma, permitindo interação limitada entre a aplicação e o coletor de lixo da Máquina Virtual Java (JVM). É um pacote importante, central o suficiente para a linguagem para que os projetistas da linguagem o colocassem sob o espaço de nomes java.lang, mas é um tanto específico e não usado por muitos desenvolvedores. Este pacote foi adicionado no J2SE 1.2.

java.io

O pacote java.io contém classes que suportam entrada e saída. As classes no pacote são primariamente orientadas a stream; no entanto, uma classe para acesso aleatório a arquivos também é fornecida. As classes centrais no pacote são InputStream e OutputStream, que são classes base abstratas para ler de e escrever para streams de bytes, respectivamente. As classes relacionadas Reader e Writer são classes base abstratas para ler de e escrever para streams de caracteres, respectivamente. O pacote também tem algumas classes diversas para suportar interações com o sistema de arquivos hospedeiro. As classes de stream seguem o padrão decorator estendendo a subclasse base para adicionar recursos às classes de stream. As subclasses das classes de stream base são tipicamente nomeadas para um dos seguintes atributos:

java.nio

No J2SE 1.4, o pacote java.nio (NIO ou Non-blocking I/O) foi adicionado para suportar E/S mapeada em memória, facilitando operações de E/S mais próximas ao hardware subjacente com desempenho às vezes dramaticamente melhor. O pacote java.nio fornece suporte para vários tipos de buffer. O subpacote java.nio.charset fornece suporte para diferentes codificações de caracteres para dados de caracteres. O subpacote java.nio.channels fornece suporte para canais, que representam conexões a entidades capazes de realizar operações de E/S, como arquivos e soquetes. O pacote java.nio.channels também fornece suporte para bloqueio fino de arquivos.

java.math

O pacote java.math suporta aritmética multiprecisão (incluindo operações aritméticas modulares) e fornece geradores de números primos multiprecisão usados para geração de chaves criptográficas. As principais classes do pacote são:

java.net

O pacote java.net fornece rotinas especiais de E/S para redes, permitindo requisições HTTP, bem como outras transações comuns.

java.text

O pacote java.text implementa rotinas de análise sintática para strings e suporta várias linguagens legíveis por humanos e análise específica de localidade.

03

Pacotes de propósito especial

Imagem: yuichi.sakuraba · BY-NC · Openverse

O pacote javax.rmi fornecia suporte para a comunicação remota entre aplicações, usando o protocolo RMI sobre IIOP. Este protocolo combina características do RMI e do CORBA. Java SE Core Technologies - CORBA / RMI-IIOP Swing é uma coleção de rotinas que se baseiam no java.awt para fornecer um widget toolkit independente de plataforma. O pacote javax.swing usa as rotinas de desenho 2D para renderizar os componentes da interface do usuário em vez de depender do suporte GUI do sistema operacional nativo subjacente. Este pacote contém o maior número de classes (133 no total) no JDK 6. Este pacote, juntamente com java.awt, também contém o maior número de enums (7 no total) no JDK 6. Ele suporta aparências plugáveis (PLAFs) para que os widgets na GUI possam imitar aqueles do sistema nativo subjacente. Padrões de projeto permeiam o sistema, especialmente uma modificação do padrão modelo–visão–controlador, que afrouxa o acoplamento entre função e aparência. Uma inconsistência é que (a partir do J2SE 1.3) as fontes são desenhadas pelo sistema nativo subjacente, e não pelo Java, limitando a portabilidade do texto. Existem soluções alternativas, como o uso de fontes bitmap. Em geral, "layouts" são usados e mantêm os elementos dentro de uma GUI esteticamente consistente entre plataformas.

java.applet

Criado para suportar a criação de applets Java, o pacote java.applet permite que aplicações sejam baixadas através de uma rede e executadas dentro de uma sandbox vigiada. Restrições de segurança são facilmente impostas à sandbox. Um desenvolvedor, por exemplo, pode aplicar uma assinatura digital a um applet, rotulando-o como seguro. Isso permite que o usuário conceda permissão ao applet para realizar operações restritas (como acessar o disco rígido local) e remove algumas ou todas as restrições da sandbox. Certificados digitais são emitidos por autoridades certificadoras. Como os applets Java estão agora obsoletos, este pacote está obsoleto.

java.beans

Incluído no pacote java.beans estão várias classes para desenvolver e manipular beans, componentes reutilizáveis definidos pela arquitetura JavaBeans. A arquitetura fornece mecanismos para manipular propriedades de componentes e disparar eventos quando essas propriedades mudam. As APIs em java.beans são destinadas ao uso por uma ferramenta de edição de beans, na qual beans podem ser combinados, personalizados e manipulados. Um tipo de editor de bean é um designer de GUI em um ambiente de desenvolvimento integrado.

java.awt

O pacote java.awt, ou Abstract Window Toolkit, fornece acesso a um conjunto básico de widgets GUI baseados no conjunto de widgets da plataforma nativa subjacente, o núcleo do subsistema de eventos GUI e a interface entre o sistema de janelas nativo e a aplicação Java. Ele também fornece vários gerenciadores de layout básicos, um pacote de transferência de dados para uso com a Área de Transferência e Arrastar e Soltar, a interface para dispositivos de entrada como mouses e teclados, bem como acesso à bandeja do sistema em sistemas compatíveis. Este pacote, juntamente com javax.swing, contém o maior número de enums (7 no total) no JDK 6.

java.rmi

O pacote java.rmi fornece invocação de método remoto Java para suportar chamadas de procedimento remoto entre duas aplicações Java executando em diferentes JVMs.

java.security

Suporte para segurança, incluindo o algoritmo de resumo de mensagem, está incluído no pacote java.security.

java.sql

Uma implementação da API JDBC (usada para acessar bancos de dados SQL) está agrupada no pacote java.sql.

04

org.w3c

Imagem: yuichi.sakuraba · BY-NC · Openverse

Java contém pacotes para utilitários do World Wide Web Consortium (principalmente XML) sob o espaço de nomes org.w3c. Muitos deles existem no módulo java.xml.

org.w3c.dom

Os pacotes org.w3c.dom fornecem interfaces para o Document Object Model (DOM).

org.xml.sax

Os pacotes org.xml.sax fornecem interfaces para o Simple API for XML (SAX).

05

org.omg

Imagem: yuichi.sakuraba · BY-NC · Openverse

org.omg.CORBA

O pacote org.omg.CORBA fornecia suporte para a comunicação remota entre aplicações usando o General Inter-ORB Protocol e suporta outros recursos da arquitetura de broker de objetos comuns. Assim como o RMI e o RMI-IIOP, este pacote é para chamar métodos remotos de objetos em outras máquinas virtuais (geralmente via rede). Este pacote continha o maior número de classes java.lang.Exception (45 no total) no JDK 6. De todas as possibilidades de comunicação, o CORBA é portável entre várias linguagens; no entanto, isso traz mais complexidade. Esses pacotes foram descontinuados no Java 9 e removidos do Java 11.

org.omg.PortableInterceptor

O pacote org.omg.PortableInterceptor continha o maior número de interfaces (39 no total) no JDK 6. Ele fornece um mecanismo para registrar hooks ORB através dos quais os serviços ORB interceptam o fluxo normal de execução do ORB.

06

Segurança

Imagem: yuichi.sakuraba · BY-NC · Openverse

Várias vulnerabilidades críticas de segurança foram relatadas. Alertas de segurança da Oracle anunciam correções críticas de segurança relacionadas ao Java SE.

Vídeos recomendados

Fontes consultadas

Continue pesquisando