O futuro da linguagem e da
                        plataforma: Java 7 e 8
                            Eder Magalhães
                              @edermag
                            www.yaw.com.br

                                             Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
OpenJDK, o Java livre

       O que é ?


       Qual é o seu papel ?




                              Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Para relembrar...
   04




                                  2
                               01
20




                             /2
                           04
                           Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Para relembrar...



              Java 5 (Tiger) foi lançado em 2004!
   04




                                                  2
                                               01
20




                                             /2
                                            04
                                           Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Para relembrar...




 Java 5
   04




                            06




                                        2
                                     01
20




                           20




                                   /2
                                 04
                                 Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Para relembrar...



              Java 6 (Mustang) foi lançado em 2006!



 Java 5
   04




                            06




                                                 2
                                              01
20




                           20




                                            /2
                                          04
                                          Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Para relembrar...




 Java 5                    Java 6
   04




                               06




                                           2
                                        01
20




                             20




                                      /2
                                    04
                                    Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Para relembrar...



                       Depois de um longo período...




                                               11
                                              20
 Java 5                    Java 6
   04




                               06




                                                         2
                                                    01
20




                             20




                                                    /2
                                                   04
                                               Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Para relembrar...



               Java 7 (Dolphin) foi lançado em 2011




                                          11
                                         20
 Java 5                    Java 6
   04




                               06




                                                    2
                                               01
20




                             20




                                               /2
                                              04
                                           Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Para relembrar...



                           Mas, durante esses 5 anos ...




                                                    11
                                                   20
 Java 5                    Java 6
   04




                               06




                                                              2
                                                         01
20




                             20




                                                         /2
                                                        04
                                                    Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Expectativa




                                    Java 7




                                        11
                                      20
 Java 5                    Java 6
   04




                               06




                                                  2
                                             01
20




                             20




                                             /2
                                           04
                                         Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Expectativa


                 No fim do ano (provavelmente)...




                                                                   2
                                                              01
                                                              /2
                                                           ut
                                            Java 7




                                                          O
                                                11
                                              20
 Java 5                    Java 6
   04




                               06




                                                          2
                                                     01
20




                             20




                                                     /2
                                                   04
                                                 Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Expectativa


                                    Java 8 será lançado!




                                                                              2
                                                                         01
                                                                         /2
                                                                      ut
                                                     Java 7




                                                                     O
                                                           11
                                                       20
 Java 5                    Java 6
   04




                               06




                                                                     2
                                                                01
20




                             20




                                                                /2
                                                            04
                                                           Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Expectativa


                                                Java 8




                                                           2
                                                      01
                                                      /2
                                                   ut
                                    Java 7




                                                  O
                                        11
                                      20
 Java 5                    Java 6
   04




                               06




                                                  2
                                             01
20




                             20




                                             /2
                                           04
                                         Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
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
                                                 01
20




                             20




                                                 /2
                                               04
                                             Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
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
                                                   01
20




                             20




                                                   /2
                                                 04
                                               Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
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
                                                    01
20




                             20




                                                    /2
                                                  04
                                                Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
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
                                             01
20




                             20




                                             /2
                                           04
                                         Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
Calma, ainda não acabou!
       Rumores sobre o Java 9:




                                 Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Calma, ainda não acabou!
       Rumores sobre o Java 9:




                                 Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Um pedaço do universo Java




                                Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
Ao invés de




                           Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Ao invés de




          Uhn... Difícil, são muitas tecnologias!




                                        Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Eu prefiro




                           Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
Eu prefiro




          Uau... São muitas oportunidades!




                                      Globalcode	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
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	
  –	
  Open4education
Saturday, March 31, 2012
Obrigado !

                           eder@yaw.com.br
                              @edermag




                                             Globalcode	
  –	
  Open4education
Saturday, March 31, 2012

Futuro da linguagem e plataforma: Java 7 e 8

  • 1.
    O futuro dalinguagem e da plataforma: Java 7 e 8 Eder Magalhães @edermag www.yaw.com.br Globalcode  –  Open4education Saturday, March 31, 2012
  • 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  –  Open4education Saturday, March 31, 2012
  • 3.
    Organização e evoluçãoda 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  –  Open4education Saturday, March 31, 2012
  • 4.
    OpenJDK, o Javalivre O que é ? Qual é o seu papel ? Globalcode  –  Open4education Saturday, March 31, 2012
  • 5.
    Para relembrar... 04 2 01 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 6.
    Para relembrar... Java 5 (Tiger) foi lançado em 2004! 04 2 01 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 7.
    Para relembrar... Java5 04 06 2 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 8.
    Para relembrar... Java 6 (Mustang) foi lançado em 2006! Java 5 04 06 2 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 9.
    Para relembrar... Java5 Java 6 04 06 2 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 10.
    Para relembrar... Depois de um longo período... 11 20 Java 5 Java 6 04 06 2 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 11.
    Para relembrar... Java 7 (Dolphin) foi lançado em 2011 11 20 Java 5 Java 6 04 06 2 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 12.
    Para relembrar... Mas, durante esses 5 anos ... 11 20 Java 5 Java 6 04 06 2 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 13.
    Expectativa Java 7 11 20 Java 5 Java 6 04 06 2 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 14.
    Expectativa No fim do ano (provavelmente)... 2 01 /2 ut Java 7 O 11 20 Java 5 Java 6 04 06 2 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 15.
    Expectativa Java 8 será lançado! 2 01 /2 ut Java 7 O 11 20 Java 5 Java 6 04 06 2 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 16.
    Expectativa Java 8 2 01 /2 ut Java 7 O 11 20 Java 5 Java 6 04 06 2 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 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 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 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 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 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 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 20.
    Trabalhos a todovapor 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 01 20 20 /2 04 Globalcode  –  Open4education Saturday, March 31, 2012
  • 21.
    Dolphin: o Java7! 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  –  Open4education Saturday, March 31, 2012
  • 22.
    Dolphin: o Java7! 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  –  Open4education Saturday, March 31, 2012
  • 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  –  Open4education Saturday, March 31, 2012
  • 24.
    Antes sem ogerenciamento 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  –  Open4education Saturday, March 31, 2012
  • 25.
    Antes sem ogerenciamento 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  –  Open4education Saturday, March 31, 2012
  • 26.
    Agora com gerenciamentoautomá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  –  Open4education Saturday, March 31, 2012
  • 27.
    NIO.2: API deI/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  –  Open4education Saturday, March 31, 2012
  • 28.
    A nova plataformaJava 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  –  Open4education Saturday, March 31, 2012
  • 29.
    A nova plataformaJava 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  –  Open4education Saturday, March 31, 2012
  • 30.
    De volta alinguagem, 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  –  Open4education Saturday, March 31, 2012
  • 31.
    De volta alinguagem, 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  –  Open4education Saturday, March 31, 2012
  • 32.
    Ordernar um arrayno 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  –  Open4education Saturday, March 31, 2012
  • 33.
    Ordernar um arrayno 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  –  Open4education Saturday, March 31, 2012
  • 34.
    Em Java 8poderá 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  –  Open4education Saturday, March 31, 2012
  • 35.
    Em Java 8poderá 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  –  Open4education Saturday, March 31, 2012
  • 36.
    Calma, ainda nãoacabou! Rumores sobre o Java 9: Globalcode  –  Open4education Saturday, March 31, 2012
  • 37.
    Calma, ainda nãoacabou! Rumores sobre o Java 9: Globalcode  –  Open4education Saturday, March 31, 2012
  • 38.
    Um pedaço douniverso Java Globalcode  –  Open4education Saturday, March 31, 2012
  • 39.
    Um pedaço douniverso 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  –  Open4education Saturday, March 31, 2012
  • 40.
    Ao invés de Globalcode  –  Open4education Saturday, March 31, 2012
  • 41.
    Ao invés de Uhn... Difícil, são muitas tecnologias! Globalcode  –  Open4education Saturday, March 31, 2012
  • 42.
    Eu prefiro Globalcode  –  Open4education Saturday, March 31, 2012
  • 43.
    Eu prefiro Uau... São muitas oportunidades! Globalcode  –  Open4education Saturday, March 31, 2012
  • 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  –  Open4education Saturday, March 31, 2012
  • 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  –  Open4education Saturday, March 31, 2012
  • 46.
    Obrigado ! eder@yaw.com.br @edermag Globalcode  –  Open4education Saturday, March 31, 2012