1 / 26

Java 5 - Novidades

Java 5 - Novidades. Gerente de Tecnologia – Vitor Costa. Novidades. Tipos genéricos; Autoboxing/unboxing; Enhanced for Loop; Covariância; Tipos enumerados; Static Imports; Annotations (Metadata); Argumentos variáveis; Leituras e escritas formatadas; Outras novidades. Tipos Genéricos.

xanti
Download Presentation

Java 5 - Novidades

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java 5 - Novidades Gerente de Tecnologia – Vitor Costa

  2. Novidades • Tipos genéricos; • Autoboxing/unboxing; • Enhanced for Loop; • Covariância; • Tipos enumerados; • Static Imports; • Annotations (Metadata); • Argumentos variáveis; • Leituras e escritas formatadas; • Outras novidades...

  3. Tipos Genéricos • JSR-14; • Sintaxe mais limpa – evita casts; • Verificação em tempo de compilação; • Equivalente ao Template em C++, será?

  4. Tipos Genéricos • Antes: • Agora:

  5. Construindo Tipos Genéricos

  6. Autoboxing/unboxing • JSR-201; • Elimina a conversão manual entre os tipos primitivos e suas “wrapper” classes; • Código mais simples de ler; • Facilita a integração dos tipos genéricos;

  7. Autoboxing/unboxing • Antes: • Agora:

  8. Autoboxing/unboxing • Se A é igual a B e B é igual a C, então A é igual a C; • Não é mais verdade após Java 5; 

  9. Enhanced for Loop • JSR-201; • Conhecido como for-each em outras lings.; • Reduz a repetição de código para iterar sobre arrays ou coleções; • Melhor usado com tipos genéricos;

  10. Enhanced for Loop - array • Antes: • Agora:

  11. Enhanced for Loop - coleção • Antes: • Agora:

  12. Enhanced for Loop • Não substitui os loops onde é necessário a utilização de um contador; • Não se aplica às iterações onde se deseja remover ou substituir os elementos; • Pode ser mais lento quando usado em conjunto com coleções muito grandes; • Suporte do “Enhanced for Loop” a qualquer coleção: java.lang.Iterable<E>;

  13. Covariância • Parte da JSR-14 (tipos genéricos); • Capacidade de uma subclasse sobrescrever um método trocando seu tipo de retorno por uma subclasse do tipo de retorno original;

  14. Covariância

  15. Tipos Enumerados • JSR-201; • Permite criação de tipos enumerados diretamente na linguagem (sem ter que recorrer a padrões); • Adiciona um novo termo às palavras reservadas: enum;

  16. Tipos Enumerados

  17. Tipos Enumerados

  18. Static Imports • JSR-201; • Importa as funções e variáveis públicas estáticas de outra classe; • Substitui o “Constant Interface Antipattern”; • Pode facilitar o uso destas funções e variáveis, mas não devemos abusar;

  19. Static Imports • Antes: • Agora:

  20. Annotations (Metadata) • JSR-175; • Permite que você defina e use seus próprios tipos de anotação; • Podem ser acessadas via reflexão; • Não alteram a semântica do programa, mas pode afetar como o programa é tratado por ferramentas e bibliotecas; • Programadores típicos nunca precisarão definir um tipo Annotation;

  21. Argumentos Variáveis • JSR-65; • Permite a definição de métodos com número de argumentos variáveis; • Elimina a necessidade de empacotar listas em um array; • Só poder ser utilizado como última variável em um método;

  22. Argumentos Variáveis

  23. Leituras e escritas formatadas • JSR-51; • Facilidades para leitura e escrita de textos formatados; • Leitura: Scanner, evolução do StringTokenizer; • Escrita: printf em Java;

  24. Leituras e escritas formatadas • Escrita: • Leitura:

  25. Outras Novidades... • Utilitário para programação concorrente; • RMI: não necessita mais do rmic; • Algumas adições na API JDBC; • Muitas melhorias no desempenho: http://java.sun.com/performance/reference/whitepapers/5.0_performance.html • StringBuilder e StringBuffer;

  26. Java 5 - Novidades Gerente de Tecnologia – Vitor Costa

More Related