Java 5 - Novidades Gerente de Tecnologia – Vitor Costa.

Slides:



Advertisements
Apresentações semelhantes
Curso de aprofundamento na linguagem C
Advertisements

Soluções Iterativas com Laços
Programação em Java Prof. Maurício Braga
Estruturas de Repetição
Modificadores Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/2008.
Collections Marco Antonio, Arquiteto de Software – TJDF Atualizado Dezembro/2008.
Herança, Polimorfismo e Classes Abstratas em Java
Java: Pacotes e Modificadores de Visibilidade
Polimorfismo e Acoplamento Dinâmico
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Walfredo Cirne walfredo.dsc.ufpb.br
Polimorfismo e Classes Abstratas Profa
Programação Concorrente
Wagner Santos C. de Jesus
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Classes e objetos Arrays e Sobrecarga
Tipos Agregados Homogêneos e Listas
Curso de Nivelamento LCG
GEJAVA IV SCJA – Certificação Sun java associado exame cx
Atributos, Encapsulamento e Interface em Java
Linguagem técnica de programação I Java
Chamada Remota de Procedimentos
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tipos de Dados Paradigmas de Programação
Professora Lucélia Oliveira
Paulo Borba Centro de Informática Universidade Federal de Pernambuco
Pilhas Profa. Nádia Félix.
Aula Prática 1 Monitoria IP/CC (~if669). Verificação Dinâmica de Tipos Métodos de superclasses e subclasses: Uso de métodos de subclasses quando se é.
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Polimorfismo.
Funções Matemáticas e de String
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Linguagem I Strings.
STRINGS Dilvan Moreira (baseado no livro Big Java e Z. Liang)
Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes
Estruturas de Dados I Segundo Período de 2008 Gabarito da Primeira Prova.
Herança e Arquitetura em camadas
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Java 5 – Novos recursos Jobson Ronan
Coleções em Java - Parte 2
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
1 Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)
Luiz Carlos d´Oleron SJCP Java Avançado Java 1.5.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
J U nit Um Framework Para Testes. Motivação  Todos os programadores sabem que devem testar seu código  Quanto mais curto o prazo menos testes são realizados.
Array e ArrayList LPOO – 01/09/14.
Implementação Orientada a Objetos – Aula 09 Pacotes Prof. Danielle Martin Universidade de Mogi das Cruzes
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
Linguagem Java Programação II.
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
Capítulo 4. Conjuntos  Introdução  Principais operações de conjuntos  Principais interfaces de conjuntos  A interface Collection  A interface Iterator.
1. 2 Prof. Maurício Rodrigues de Morais Programação Orientada a Objetos II.
Java Básico Lab Ruddá Beltrão | Cristian Costa.
Minicurso Java Básico Ruddá Beltrão | Cristian Costa.
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
1 Paradigmas de Linguagem de Programação Java 5.0 Elifrancis Soares Diego Madruga Igor Cavalcanti Rafael Duarte Prof.: Augusto Sampaio.
Percorrendo coleções com Iterator
Transcrição da apresentação:

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 JSR-14; Sintaxe mais limpa – evita casts; Verificação em tempo de compilação; Equivalente ao Template em C++, será?

Tipos Genéricos Antes: Agora: List lista = new ArrayList(); lista.add( new Integer( 100 ) ); int numero = ( (Integer) lista.get( 0 ) ).intValue(); List lista = new ArrayList (); lista.add( new Integer( 100 ) ); int numero = lista.get( 0 ).intValue();

Construindo Tipos Genéricos public interface Pilha { E pop(); void push(E objeto); } public class UtilPilha { public static void limpar(Pilha pilha) { } public static void imprimir (Pilha pilha) { } }

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;

Autoboxing/unboxing Antes: Agora: List lista = new ArrayList(); lista.add( new Integer( 100 ) ); int numero = lista.get( 0 ).intValue(); List lista = new ArrayList (); lista.add( 100 ); int numero = lista.get( 0 );

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;  Integer i1 = new Integer( 100 ); int i2 = 100; Integer i3 = new Integer( 100 ); if (i1 == i2 && i2 == i3) { System.out.println(“OK”); if (i1 != i3) System.out.println(“Xiiiii”); }

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;

Enhanced for Loop - array Antes: Agora: int sum = 0; for(int i = 0; i < array.length; i++) { sum += array[i]; } int sum = 0; for(int i : array) { sum += i; }

Enhanced for Loop - coleção Antes: Agora: for(Iterator i = c.iterator(); i.hasNext(); ) { String str = (String) i.next(); sb.append(str); } for(String str : c) { sb.append(str); }

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 ;

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;

Covariância public class SuperClasse { public JTextField getCampoTexto() { return new JTextField(); } public class SubClasse extends SuperClasse { public JPasswordField getCampoTexto() { return new JPasswordField(); }

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 ;

Tipos Enumerados public enum Semaforo { VERMELHO, AMARELO, VERDE }; /*... */ Semaforo semaforo = Semaforo.VERDE; if(semaforo == Semaforo.VERMELHO) { } switch(semaforo) { case(Semaforo.VERDE): //... }

Tipos Enumerados public enum Planet { MERCURY (3.303e+23, e6), VENUS (4.869e+24, e6), PLUTO (1.27e+22, 1.137e6); private final double mass, radius; Planet(double mass, double radius) { this.mass = mass; this.radius = radius; } private double mass() { return mass; } private double radius() { return radius; } public static final double G = E-11; double surfaceGravity() { return G * mass / (radius * radius); }

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;

Static Imports Antes: Agora: double r = Math.cos(Math.PI * theta); import static java.lang.Math.* // import static java.lang.Math.PI // import static java.lang.Math.cos double r = cos(PI * theta);

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;

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;

Argumentos Variáveis public class Teste { public void imprimir(Object... objetos) { for(Object objeto : objetos) System.out.println(objeto); } public static void main(String[] args) { imprimir(“string”, new Teste(), 50, 3.2); }

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

Leituras e escritas formatadas Escrita: Leitura: int age = 28; String name = “Williamis”; System.out.printf("%s %d", name, age); Scanner reader = new Scanner(System.in); int n = reader.nextInt();

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: StringBuilder e StringBuffer;

Java 5 - Novidades Gerente de Tecnologia – Vitor Costa