A nova vers�o da linguagem Java e suas APIs b�sicas est�o muito pr�ximas de serem oficialmente lan�adas, no quinto release do SDK padr�o de Java, o J2SE 5 (anteriormente 1.5), codinome "Tiger" (Tigre). O J2SE 5.0 Beta 2 est� dispon�vel desde junho de 2004.
Esta ser� provavelmente a mais rica e importante atualiza��o da linguagem Java desde o J2SE 1.2, que coincidiu com a segunda gera��o da plataforma Java (o "Java 2" que foi dividido em J2SE, J2EE e J2ME). Um indicativo da import�ncia da nova vers�o agora � que a Sun passou a denomin�-la J2SE 5.0, ao inv�s de 1.5 se seguisse o formato de numera��o usado at� a vers�o 1.4. O J2SE release 5 inclui 15 Java Specification Requests (JSRs) componentes, gerenciados pelo Java Community Process (JCP), mecanismo oficial de participa��o e debate da comunidade na evolu��o da Plataforma Java.
V�rios recursos foram criados para facilitar a programa��o Java e trazer maior poder de express�o, de forma a tornar a escrita de c�digo Java ao mesmo tempo mais flex�vel e mais simples. Isso n�o s� traz um c�digo conciso e preciso como tamb�m reduz a chance de erros introduzidos em tarefas repetitivas e ma�antes.
int
e a classe Integer
— quando
necess�rio. Facilita o uso de tipos
primitivos em situa��es onde s�o esperados objetos (tipicamente em
elementos de cole��o) e vice-versa.for
foi melhorado para suportar a seguinte
sintaxe simplificada para itera��o de elementos de um array ou cole��o:
for (ClasseElemento elem : lista)
. Esta nova
sintaxe costuma ser denominada for-melhorado (enhanced-for) ou
para-cada (for-each).Um exemplo do tipo antes-e-depois esclare facilmente a forma e as vantagens do uso destes recursos:
List lista = new ArrayList(); // n�o restringe tipo dos elementos lista.add(new Integer(25)); // boxing: converter int 25 em objeto Integer lista.add(new Integer(33)); // boxing: converter 33 em Integer int total = 0; for (Iterator it = lista.iterator(); it.hasNext();) { // criar e percorrer iterador Integer elem = (Integer)it.next(); // itera��o next() e cast expl�cito (Integer) total += elem.intValue(); // unboxing: intValue() }
List<Integer> lista = new ArrayList<Integer>(); // generics: define tipo do elemento Integer lista.add(25); // autoboxing lista.add(33); // autoboxing int total = 0; for (Integer elem : lista) { // for() melhorado: itera��o impl�cita, dispensa cast total += elem; // autoboxing: unboxing impl�cito }
Outros novos recursos da linguagem deixar�o mais confort�veis e aliviados os programadores que migraram de C/C++ para Java:
...
para denotar uma
lista de par�metros de tamanho vari�vel, sem a necessidade de se usar
explicitamente uma cole��o para agrup�-los.scanf
e printf
(aus�ncias sempre reclamadas pelos programadores advindos de C/C++),
puderam ser implementados em Java pelas classes Scanner
e
Formatter
do pacote java.util
, incluindo —
claro — o m�todo printf()
, com melhorias em rela��o
ao C como suporte ao tipo Date
e a mudan�a de linha
multi-plataforma %n
.Al�m da facilidade de desenvolvimento, existem tamb�m novidades e melhorias visando escalabilidade e desempenho, monitoramento e gerenciabilidade. O desenvolvimento de interface gr�fica desktop tamb�m foi agraciado com os temas de apar�ncia e comportamento gr�fico (look-and-feel) GTK/Linux e Windows XP. Foram introduzidas tamb�m outras evolu��es diversas, como o suporte aos padr�es XML mais atuais e a introdu��o dos poderosos RowSets em JDBC. As refer�ncias deste texto apresentam links recomendados para o aprofundamento nos detalhes e novidades da nova vers�o J2SE 5 "Tiger".
java.util.concurrent
, java.util.concurrent.atomic
e java.util.concurrent.locks
.-Xlint
para aviso sobre constru��es v�lidas, por�m
suspeitas e freq�entemente problem�ticas.© 2003-2020, Márcio d'Ávila, mhavila.com.br, direitos reservados. O texto e c�digo-fonte apresentados podem ser referenciados, distribu�dos e utilizados, desde que expressamente citada esta fonte e o cr�dito do(s) autor(es). A informa��o aqui apresentada, apesar de todo o esfor�o para garantir sua precis�o e corre��o, � oferecida "como est�", sem quaisquer garantias expl�citas ou impl�citas decorrentes de sua utiliza��o ou suas conseq��ncias diretas e indiretas.