Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Futuro da linguagem e plataforma: Java 7 e 8

2,514 views

Published on

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

  • Be the first to comment

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

×