Artigo Java Magazine 01 - J2SE 1.4
Conheça as novidades da quinta versão da plataforma base de Java, com grandes extensões e performance superior.
J2SE 1.4<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Novas APIS e mais velocidade no novo Java
Conheça as novidades da quinta versão da plataforma base de Java, com grandes extensões e performance superior
Cerca de vinte meses após o lançamento da versão 1.3, o kit oficial de ferramentas do programador Java recebeu um novo e significativo incremento. A versão 1.4 da edição padrão de Java 2 (J2SE, ou Java 2 Standard Edition) inclui os resultados de 11 JSRs, recentemente finalizadas no JCP (Java Community process – veja quadro abaixo) e um grande número de classes e interfaces adicionais.
Neste artigo, vamos dar uma olhada nas principais mudanças introduzidas no J2SE 1.4 (que também chamaremos de JDK 1.4). Após isso, estaremos mais bem equipados para decidir quando começar a usar o novo conjunto de APIs e ferramentas da Sun.
O foco principal da versão 1.4, segundo a Sun, foi fornecer ao programador um repertório mais completo de APIs, evitando a necessidade de usar APIs não-Java, que antes eram tipicamente acessadas via JNI (Java Native Interface), ou aquelas APIs escritas em Java, mas não padronizadas. Há também grandes melhorias em velocidade de execução em várias áreas, embora não tenha havido grande progresso em relação ao consumo de memória da máquina virtual Java.
Com relação à linguagem Java em si, no entanto, não espere ver grandes mudanças. Houve apenas uma – a introdução da palavra-chave assert. Maiores mudanças na linguagem virão na próxima versão, 1.5, que deverá incluir suporte à programação genérica – os chamados generics, com objetivo similar aos templates de C++ - assim como várias outras novidades menores. Considerando o histórico das versões principais do J2SE, a nova versão deverá ser lançada no final de 2003.
A figura da página ao lado mostra os componentes da plataforma J2SE 1.4, incluindo APIs e ferramentas.
Caça aos bugs: cadeias de exceções
A classe Java.Iang.Throwable, base de todas as classes de exceções e erros em Java, agora suporta o encadeamento de exceções, bem como outras facilidades relacionadas. Isto pode parecer uma adição de pequena importância, mas faz uma grande diferença na prática. Por exemplo, considere este bloco de código, escrito para o JDK 1.3.x:
//Tratamento de uma exceção checada, antes do JDK 1.4
//Acessa um arquivo
catch (10Exception e) {
throw MinhaExcecaoDeAltoNivel (e.getMessage() ) :
Ao executar o código anterior, o programa perderia completamente o stack trace (informações com a seqüência de métodos chamados) da exceção original; neste caso, o tipo da exceção também seria perdido. Para evitar isto, uma implementação sob demanda de um mecanismo de encadeamento tinha de ser feita. Com o JDK 1.4, entretanto, basta fazer isto:
//Lidando com uma exceção checada, estilo JDK 1.4
throw MinhaExcecaoDeAltoNivel (e.getMessage() ).initCause(e);
O novo método Throwable.initCause salva internamente a exceção indicada (a ¨causa¨ declarada da nova exceção). Quando uma impressão de stack trace da instância de MinhaExcecaoDeAltoNivel é solicitada, o resultado inclui também o stack trace da exceção causadora (uma 10Exception, no caso anterior).