Futuro da linguagem e plataforma: Java 7 e 8

2.450 visualizações

Publicada em

Apresentação "O futuro da linguagem e plataforma: Java 7 e 8", no evento Profissão Java 2012

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.450
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
40
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Futuro da linguagem e plataforma: Java 7 e 8

  1. 1. O futuro da linguagem e da plataforma: Java 7 e 8 Eder Magalhães @edermag www.yaw.com.br Globalcode  –  Open4educationSaturday, March 31, 2012
  2. 2. Agenda Organização e evolução do Java; Qual o papel do OpenJDK ? Histórico de versões do Java; Especificação do Java 7; Mudanças na linguagem (Projeto Coin) Exemplos do Java 7; Java EE 7, a nova plataforma; Planejamento e exemplos do Java 8; Links; Globalcode  –  Open4educationSaturday, March 31, 2012
  3. 3. Organização e evolução da Java Grupo de empresas e usuários: JCP; Especificação: JSR; JSR 337: as mudanças do Java 7; JSR 338: as mudanças do Java 8; JSR 342: as mudanças da plataforma Java EE 7; Globalcode  –  Open4educationSaturday, March 31, 2012
  4. 4. OpenJDK, o Java livre O que é ? Qual é o seu papel ? Globalcode  –  Open4educationSaturday, March 31, 2012
  5. 5. Para relembrar... 04 2 0120 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  6. 6. Para relembrar... Java 5 (Tiger) foi lançado em 2004! 04 2 0120 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  7. 7. Para relembrar... Java 5 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  8. 8. Para relembrar... Java 6 (Mustang) foi lançado em 2006! Java 5 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  9. 9. Para relembrar... Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  10. 10. Para relembrar... Depois de um longo período... 11 20 Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  11. 11. Para relembrar... Java 7 (Dolphin) foi lançado em 2011 11 20 Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  12. 12. Para relembrar... Mas, durante esses 5 anos ... 11 20 Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  13. 13. Expectativa Java 7 11 20 Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  14. 14. Expectativa No fim do ano (provavelmente)... 2 01 /2 ut Java 7 O 11 20 Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  15. 15. Expectativa Java 8 será lançado! 2 01 /2 ut Java 7 O 11 20 Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  16. 16. Expectativa Java 8 2 01 /2 ut Java 7 O 11 20 Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  17. 17. Expectativa 13 No começo de 2013... 0 /2 ar Java 8 M 2 01 /2 ut Java 7 O 11 20 Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  18. 18. Expectativa 13 é a vez da plataforma! 0 /2 ar Java 8 M 2 01 /2 ut Java 7 O 11 20 Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  19. 19. Expectativa 13 Java EE 7 será lançado! 0 /2 ar Java 8 M 2 01 /2 ut Java 7 O 11 20 Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  20. 20. Trabalhos a todo vapor Java EE 7 13 0 /2 ar Java 8 M 2 01 /2 ut Java 7 O 11 20 Java 5 Java 6 04 06 2 0120 20 /2 04 Globalcode  –  Open4educationSaturday, March 31, 2012
  21. 21. Dolphin: o Java 7! Projeto Coin: mudanças na linguagem; Nova API de I/O; Melhorias em APIs antigas: JDBC e Swing; Javadoc reestilizado; Melhorias na “infraestrutura” do Java; Globalcode  –  Open4educationSaturday, March 31, 2012
  22. 22. Dolphin: o Java 7! Projeto Coin: mudanças na linguagem; Nova API de I/O; Melhorias em APIs antigas: JDBC e Swing; Javadoc reestilizado; Melhorias na “infraestrutura” do Java; Globalcode  –  Open4educationSaturday, March 31, 2012
  23. 23. Projeto Coin Novo separador para literais numéricas; Literais binárias; O switch suporta String; Operador diamond e a inferência de tipos; Gerênciamento automático de recursos; Tratamento de exceções/erros mais flexível; Ajuste no uso de varargs com generics; Globalcode  –  Open4educationSaturday, March 31, 2012
  24. 24. Antes sem o gerenciamento automático public static void main(String args[]) throws SQLException { String query = "select nome, cpf from aluno"; String url = "jdbc:mysql://localhost:3306/test"; Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection(url, "root",""); stmt = conn.createStatement(); rs = stmt.executeQuery(query); while (rs.next()) { String nome = rs.getString("nome"); String cpf = rs.getString("cpf"); System.out.printf("Nome:%st Cpf:%s %n", nome, cpf); } } finally { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } } Globalcode  –  Open4educationSaturday, March 31, 2012
  25. 25. Antes sem o gerenciamento automático public static void main(String args[]) throws SQLException { String query = "select nome, cpf from aluno"; String url = "jdbc:mysql://localhost:3306/test"; Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection(url, "root",""); stmt = conn.createStatement(); rs = stmt.executeQuery(query); while (rs.next()) { String nome = rs.getString("nome"); String cpf = rs.getString("cpf"); System.out.printf("Nome:%st Cpf:%s %n", nome, cpf); } } finally { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } } Globalcode  –  Open4educationSaturday, March 31, 2012
  26. 26. Agora com gerenciamento automático public static void main(String args[]) throws SQLException { String query = "select nome, cpf from aluno"; String url = "jdbc:mysql://localhost:3306/test"; try (Connection conn = DriverManager.getConnection(url, "root",""); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(query)) { while (rs.next()) { String nome = rs.getString("nome"); String cpf = rs.getString("cpf"); System.out.printf("Nome:%st Cpf:%s %n", nome, cpf); } } } Globalcode  –  Open4educationSaturday, March 31, 2012
  27. 27. NIO.2: API de I/O eficaz public static void main(String args[]) throws SQLException { Path home = Paths.get("/home/yaw"); Path foto = home.resolve("foto.jpg"); Path backup = home.resolve("foto_backup.jpg"); //cria cópia do arquivo: foto_backup.jpg Files.copy(foto, backup); Path destino = Paths.get("/home/yaw/backup"); //move o arquivo para o diretório backup Files.move(backup, destino.resolve(backup.getFileName())); //lista e imprime na console o conteúdo do diretório DirectoryStream<Path> stream = Files.newDirectoryStream(home); for (Path p : stream) { System.out.println("t -" + p ); } } Globalcode  –  Open4educationSaturday, March 31, 2012
  28. 28. A nova plataforma Java EE 7 O Java EE mais próximo da nuvem; Maior suporte a HTML5; Evolução das tecnologias: Servlet, JSF, EL, EJB, JPA, JAX-RS, JMS e CDI; Novos componentes (especificações): Operações em lote, cache, concorrência e JSON; Globalcode  –  Open4educationSaturday, March 31, 2012
  29. 29. A nova plataforma Java EE 7 O Java EE mais próximo da nuvem; Maior suporte a HTML5; Evolução das tecnologias: Servlet, JSF, EL, EJB, JPA, JAX-RS, JMS e CDI; Novos componentes (especificações): Operações em lote, cache, concorrência e JSON; Globalcode  –  Open4educationSaturday, March 31, 2012
  30. 30. De volta a linguagem, agora o Java 8 Concluir o Projeto Coin; Nova API para manipulação de datas no Java; Suporte a definição de módulos (Projeto Jigsaw); Linguagem mais eficiente (Projeto Lambda); Globalcode  –  Open4educationSaturday, March 31, 2012
  31. 31. De volta a linguagem, agora o Java 8 Concluir o Projeto Coin; Nova API para manipulação de datas no Java; Suporte a definição de módulos (Projeto Jigsaw); Linguagem mais eficiente (Projeto Lambda); Globalcode  –  Open4educationSaturday, March 31, 2012
  32. 32. Ordernar um array no clique do botão ... final String[] nomes = {"Pedro", "ana", "paula", "Amanda"}; JButton button = new JButton("Ordenar"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { Arrays.sort(nomes, new Comparator<String>() { public int compare(String t1, String t2) { return t1.compareToIgnoreCase(t2); } }); } }); ... Globalcode  –  Open4educationSaturday, March 31, 2012
  33. 33. Ordernar um array no clique do botão ... final String[] nomes = {"Pedro", "ana", "paula", "Amanda"}; JButton button = new JButton("Ordenar"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { Arrays.sort(nomes, new Comparator<String>() { public int compare(String t1, String t2) { return t1.compareToIgnoreCase(t2); } }); } }); ... Hoje, com Java 7! Globalcode  –  Open4educationSaturday, March 31, 2012
  34. 34. Em Java 8 poderá ser feito assim ... final String[] nomes = {"Pedro", "ana", "paula", "Amanda"}; JButton button = new JButton("Ordenar"); Comparator<String> comp = (s1, s2) -> s1.compareToIgnoreCase(s2); ActionListener l = (ActionEvent ae) -> Arrays.sort(nomes, comp); button.addActionListener(l); ... Globalcode  –  Open4educationSaturday, March 31, 2012
  35. 35. Em Java 8 poderá ser feito assim ... final String[] nomes = {"Pedro", "ana", "paula", "Amanda"}; JButton button = new JButton("Ordenar"); Comparator<String> comp = (s1, s2) -> s1.compareToIgnoreCase(s2); ActionListener l = (ActionEvent ae) -> Arrays.sort(nomes, comp); button.addActionListener(l); ... Expressões Lambda do Java 8! Globalcode  –  Open4educationSaturday, March 31, 2012
  36. 36. Calma, ainda não acabou! Rumores sobre o Java 9: Globalcode  –  Open4educationSaturday, March 31, 2012
  37. 37. Calma, ainda não acabou! Rumores sobre o Java 9: Globalcode  –  Open4educationSaturday, March 31, 2012
  38. 38. Um pedaço do universo Java Globalcode  –  Open4educationSaturday, March 31, 2012
  39. 39. Um pedaço do universo Java Spring JavaFX JPA JUnit Eclipse Java TV JMS ANT Restlet JRuby Axis Tomcat Java EE Struts Java Tapestry Play JAX-WS Lucene Swing Servlet OSGI Jasper Netbeans Seam Hibernate JSTL GWT Maven JSF JavaDB Vaadin JSP Rhino PrimeFaces Wicket EJB RichFaces Java ME Jython JAXB JHome JAAS Globalcode  –  Open4educationSaturday, March 31, 2012
  40. 40. Ao invés de Globalcode  –  Open4educationSaturday, March 31, 2012
  41. 41. Ao invés de Uhn... Difícil, são muitas tecnologias! Globalcode  –  Open4educationSaturday, March 31, 2012
  42. 42. Eu prefiro Globalcode  –  Open4educationSaturday, March 31, 2012
  43. 43. Eu prefiro Uau... São muitas oportunidades! Globalcode  –  Open4educationSaturday, March 31, 2012
  44. 44. Blog http://blog.globalcode.com.br/search/label/java Vídeos http://www.yaw.com.br/screencast/tag/JDK7/ Minicurso http://www.globalcode.com.br/gratuitos/minicursos/ minicurso-JDK7-modificacoes-na-linguagem Projeto com exemplos https://github.com/edermag/jdk7.minicurso/ #open4education Globalcode  –  Open4educationSaturday, March 31, 2012
  45. 45. Links http://slideshare.net/edermag http://openjdk.java.net/ http://openjdk.java.net/projects/jdk7/ http://openjdk.java.net/projects/jdk8/ http://www.infoq.com/br/articles/java7coin http://www.infoq.com/br/news/2011/10/java8-java9- javafx2 http://www.infoq.com/br/news/2012/01/javaEE7- novidades Globalcode  –  Open4educationSaturday, March 31, 2012
  46. 46. Obrigado ! eder@yaw.com.br @edermag Globalcode  –  Open4educationSaturday, March 31, 2012

×