futuro da linguagem e plataforma: java 7 e 8
DESCRIPTION
Apresentação "O futuro da linguagem e plataforma: Java 7 e 8", no evento Profissão Java 2012TRANSCRIPT
Globalcode – Open4education
O futuro da linguagem e da plataforma: Java 7 e 8
Eder Magalhães@edermag
www.yaw.com.br
Saturday, March 31, 2012
Globalcode – Open4education
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;
Saturday, March 31, 2012
Globalcode – Open4education
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;
Saturday, March 31, 2012
Globalcode – Open4education
OpenJDK, o Java livre
O que é ?
Qual é o seu papel ?
Saturday, March 31, 2012
Globalcode – Open4education
Para relembrar...
2004
04/2012
2006
Saturday, March 31, 2012
Globalcode – Open4education
Para relembrar...
2004
Java 5 (Tiger) foi lançado em 2004!
04/2012
2006
Saturday, March 31, 2012
Globalcode – Open4education
Para relembrar...
2006
04/2012
2006
Java 5
2004
Saturday, March 31, 2012
Globalcode – Open4education
Para relembrar...
2006
Java 6 (Mustang) foi lançado em 2006!
04/2012
2006
Java 5
2004
Saturday, March 31, 2012
Globalcode – Open4education
Para relembrar...
04/2012
2006
Java 5
2004
2006
Java 6
Saturday, March 31, 2012
Globalcode – Open4education
Para relembrar...
2011
Depois de um longo período...
04/2012
2006
Java 5
2004
2006
Java 6
Saturday, March 31, 2012
Globalcode – Open4education
Para relembrar...
2011
Java 7 (Dolphin) foi lançado em 2011
04/2012
2006
Java 5
2004
2006
Java 6
Saturday, March 31, 2012
Globalcode – Open4education
Para relembrar...
2011
Mas, durante esses 5 anos ...
04/2012
2006
Java 5
2004
2006
Java 6
Saturday, March 31, 2012
Globalcode – Open4education
Expectativa
2004
2006
Java 5 Java 62011
Java 7
04/2012
2006
Saturday, March 31, 2012
Globalcode – Open4education
Expectativa
2004
2006
Java 5 Java 62011
Java 7 Out/2012
04/2012
2006
No fim do ano (provavelmente)...
Saturday, March 31, 2012
Globalcode – Open4education
Expectativa
2004
2006
Java 5 Java 62011
Java 7 Out/2012
04/2012
2006
Java 8 será lançado!
Saturday, March 31, 2012
Globalcode – Open4education
Expectativa
Java 5 Java 6
Java 7 Out/2012
Java 8
04/2012
200620
042006
2011
Saturday, March 31, 2012
Globalcode – Open4education
Expectativa
Java 5 Java 6
Java 7 Out/2012
Mar/2013
Java 8
04/2012
200620
042006
2011
No começo de 2013...
Saturday, March 31, 2012
Globalcode – Open4education
Expectativa
Java 5 Java 6
Java 7 Out/2012
Mar/2013
Java 8
04/2012
200620
042006
2011
é a vez da plataforma!
Saturday, March 31, 2012
Globalcode – Open4education
Expectativa
Java 5 Java 6
Java 7 Out/2012
Mar/2013
Java 8
04/2012
200620
042006
2011
Java EE 7 será lançado!
Saturday, March 31, 2012
Globalcode – Open4education
Trabalhos a todo vapor
Java 5 Java 6
Java 7 Out/2012
Mar/2013
Java 8
Java EE 7
04/2012
200620
042006
2011
Saturday, March 31, 2012
Globalcode – Open4education
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;
Saturday, March 31, 2012
Globalcode – Open4education
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;
Saturday, March 31, 2012
Globalcode – Open4education
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;
Saturday, March 31, 2012
Globalcode – Open4education
Antes sem o gerenciamento automáticopublic 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:%s\t Cpf:%s %n", nome, cpf); } } finally { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } }}
Saturday, March 31, 2012
Globalcode – Open4education
Antes sem o gerenciamento automáticopublic 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:%s\t Cpf:%s %n", nome, cpf); } } finally { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } }}
Saturday, March 31, 2012
Globalcode – Open4education
Agora com gerenciamento automáticopublic 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:%s\t Cpf:%s %n", nome, cpf); } } }
Saturday, March 31, 2012
Globalcode – Open4education
NIO.2: API de I/O eficazpublic 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 ); }
}
Saturday, March 31, 2012
Globalcode – Open4education
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;
Saturday, March 31, 2012
Globalcode – Open4education
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;
Saturday, March 31, 2012
Globalcode – Open4education
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);
Saturday, March 31, 2012
Globalcode – Open4education
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);
Saturday, March 31, 2012
Globalcode – Open4education
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); } }); }});...
Saturday, March 31, 2012
Globalcode – Open4education
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!
Saturday, March 31, 2012
Globalcode – Open4education
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);...
Saturday, March 31, 2012
Globalcode – Open4education
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!
Saturday, March 31, 2012
Globalcode – Open4education
Calma, ainda não acabou!
Rumores sobre o Java 9:
Saturday, March 31, 2012
Globalcode – Open4education
Calma, ainda não acabou!
Rumores sobre o Java 9:
Saturday, March 31, 2012
Globalcode – Open4education
Um pedaço do universo Java
Saturday, March 31, 2012
Globalcode – Open4education
Um pedaço do universo Java
JavaJava EE
Swing
Lucene
GWT
Servlet
JSP
JSF
Spring
Struts
ANT
Maven
JavaFX
Jasper
Tapestry
JPA
Hibernate
Wicket
JSTL
Seam
Vaadin
Java ME
RestletJMS
EJB
Play
JUnit
PrimeFaces
OSGI
JAASJython
JRuby
Rhino
JHome
RichFaces
JAXB
Axis
Eclipse
Tomcat
Netbeans
JavaDB
JAX-WS
Java TV
Saturday, March 31, 2012
Globalcode – Open4education
Ao invés de
Saturday, March 31, 2012
Globalcode – Open4education
Ao invés de
Uhn... Difícil, são muitas tecnologias!
Saturday, March 31, 2012
Globalcode – Open4education
Eu prefiro
Saturday, March 31, 2012
Globalcode – Open4education
Eu prefiro
Uau... São muitas oportunidades!
Saturday, March 31, 2012
Globalcode – Open4education
Blog
http://blog.globalcode.com.br/search/label/java
#open4education
http://www.globalcode.com.br/gratuitos/minicursos/minicurso-JDK7-modificacoes-na-linguagem
https://github.com/edermag/jdk7.minicurso/
Minicurso
Projeto com exemplos
http://www.yaw.com.br/screencast/tag/JDK7/
Vídeos
Saturday, March 31, 2012
Globalcode – Open4education
Links
http://slideshare.net/edermaghttp://openjdk.java.net/
http://openjdk.java.net/projects/jdk7/http://openjdk.java.net/projects/jdk8/
http://www.infoq.com/br/articles/java7coinhttp://www.infoq.com/br/news/2011/10/java8-java9-javafx2http://www.infoq.com/br/news/2012/01/javaEE7-novidades
Saturday, March 31, 2012