<\/p>\n
Voc\u00ea ver\u00e1 no artigo de hoje as 5 novidades no Java 8 que mudar\u00e3o a forma de programa\u00e7\u00e3o em java. H\u00e1 melhorias de performance, novidades na manipula\u00e7\u00e3o de datas e a grande novidade que \u00e9 o uso de express\u00f5es Lambdas entre muitas outras.<\/p>\n
<\/p>\n
\tA linguagem Java tem evolu\u00eddo muito nos \u00faltimos anos. Como era de se esperar o novo lan\u00e7amento da vers\u00e3o 8 traz muitas novidades significativas para n\u00f3s programadores. Ent\u00e3o vamos aqui listar algumas:<\/p>\n
\r\npublic static void main(String[] args) {\r\n\t\tList novidades = Arrays.asList(\"Lambdas\", \"Default Method\",\r\n\t\t\t\t\"Stream API\", \"Date and Time API\");\r\n\r\n\t\t\/\/ Antes do Java 8:\r\n\t\tfor (String novidade : novidades) {\r\n\t\t\tSystem.out.println(novidade);\r\n\t\t}\r\n\t\t\/\/ Como fica o c\u00f3digo com uso de Lambda no Java 8:\r\n\t\tnovidades.forEach(n -> System.out.println(n));\r\n\t} \r\n<\/pre>\n2. API de Data e Hora<\/H2> <\/p>\n
\tEssa nova API de Data e Hora permitir\u00e1 que os desenvolvedores tratem data e hora de maneira mais natural, clara e f\u00e1cil de entender. At\u00e9 a vers\u00e3o do Java 7 t\u00ednhamos v\u00e1rias classes para
\ntrabalhar com data. E claro, elas foram mantidas na nova vers\u00e3o.<\/p>\n
\n- java.util.Date – Utilizada para fun\u00e7\u00f5es comuns de data em nossos sistemas<\/li>\n
- java.sql.Date – manipula\u00e7\u00e3o de data em JDBC (conex\u00f5es com Banco de dados)<\/li>\n
- java.util.GregorianCalendar – Classe utilit\u00e1ria com v\u00e1rias fun\u00e7\u00f5es para c\u00e1lculos com datas<\/li>\n
- java.text.DateFormat – Utilizada para formata\u00e7\u00e3o das datas por padr\u00f5es pr\u00e9-definidos<\/li>\n<\/ul>\n
A novidade \u00e9 o pacote java.time. Essa nova API java.time vem para unificar e facilitar o trabalho que era desempenhado pelas classes mencionadas acima. Veja alguns exemplos aqui.<\/a><\/p>\n As funcionalidades foram dividas em pacotes:<\/p>\n
\n- java.time.*: Este \u00e9 o pacote base da nova Java Date Time API. Todas as classes de base fazem parte deste pacote, como LOCALDATE, LocalTime, LocalDateTime, Instant, per\u00edodo,
\ndura\u00e7\u00e3o, etc. Todas essas classes s\u00e3o imut\u00e1veis e thread-safe. Na maioria das vezes, essas classes ser\u00e3o suficientes para lidar com requisitos comuns.<\/li>\n - java.time.chrono.* : Este pacote define APIs gen\u00e9ricas para trabalhar com calend\u00e1rio n\u00e3o ISO. Podemos estender classe AbstractChronology para criar o nosso pr\u00f3prio
\n sistema de calend\u00e1rio.<\/li>\n - java.time.format.* : Este pacote cont\u00e9m classes usadas para formata\u00e7\u00e3o e an\u00e1lise de objetos de data e hora. Na maioria das vezes, n\u00e3o estar\u00edamos diretamente
\nus\u00e1-los porque o princ\u00edpio classes no pacote java.time fornecer m\u00e9todos de formata\u00e7\u00e3o e an\u00e1lise.<\/li>\n - java.time.temporal: Este pacote cont\u00e9m objetos temporais e podemos us\u00e1-lo para descobrir data ou a hora relacionada ao objeto de data\/hora espec\u00edfica.
\nPor exemplo, podemos us\u00e1-los para descobrir o primeiro ou o \u00faltimo dia do m\u00eas. Voc\u00ea pode identificar facilmente esses m\u00e9todos porque eles sempre t\u00eam formato “withNOME”.<\/li>\n - java.time.zone: Este pacote cont\u00e9m classes para apoiar diferentes fusos hor\u00e1rios e as suas regras.<\/li>\n<\/ol>\n
Veja uma implementa\u00e7\u00e3o abaixo:<\/p>\n
\r\npackage br.com.feltex.data;\r\n\r\nimport java.time.DateTimeException;\r\nimport java.time.LocalDate;\r\nimport java.time.Month;\r\nimport java.time.ZoneId;\r\n\r\npublic class MinhaData {\r\n\r\n\tpublic static void main(String[] args) {\r\n\r\n\t\t\/\/ Data Atual\r\n\t\tLocalDate hoje = LocalDate.now();\r\n\t\tSystem.out.println(\"Data Atual=\" + hoje);\r\n\r\n\t\t\/\/ Criando uma data passa os valores desejados\r\n\t\tLocalDate natal2014 = LocalDate.of(2014, Month.DECEMBER, 25);\r\n\t\tSystem.out.println(\"Natal de 2014=\" + natal2014);\r\n\r\n\t\t\/\/ Criando uma data inv\u00e1lida 31 abril - N\u00e3o existe, pois abril s\u00f3 tem 30\r\n\t\t\/\/ dias\r\n\t\ttry {\r\n\t\t\tLocalDate abril31_2014 = LocalDate.of(2014, Month.APRIL, 31);\r\n\t\t\tSystem.out.println(abril31_2014);\r\n\t\t} catch (DateTimeException e) {\r\n\t\t\tSystem.err.println(e.getMessage());\r\n\t\t}\r\n\r\n\t\t\/\/ Data atual no Jap\u00e3o, Veja todas a zonas dispon\u00edve em ZoneId javadoc\t\t\r\n\t\tLocalDate toquio = LocalDate.now(ZoneId.of(\"Asia\/Tokyo\"));\r\n\t\tSystem.out.println(\"A data corrento em T\u00f3quio (JST) \u00e9 =\" + toquio);\r\n\r\n\t\t\/\/Retocedento os dias para obter uma data a partir da data base 01\/01\/1970\r\n\t\tLocalDate dataBase = LocalDate.ofEpochDay(365);\r\n\t\tSystem.out.println(\"365 dias a partir da data baase (01\/01\/1970)= \" + dataBase);\r\n\r\n\t\t\/\/Obter o dia pelo n\u00famero sequencial no ano.\r\n\t\tLocalDate centessimoDia2014 = LocalDate.ofYearDay(2014, 100);\r\n\t\tSystem.out.println(\"100\u00ba dia de 2014=\" + centessimoDia2014);\r\n\t}\r\n}\r\n<\/pre>\n3. Collections<\/H2>
\nAs classes no novo pacote java.util.stream fornecem uma API Stream para apoiar as opera\u00e7\u00f5es de estilo funcional em fluxos de elementos. A API Stream \u00e9 integrada a API Collections, que permite opera\u00e7\u00f5es em massa em cole\u00e7\u00f5es, como transforma\u00e7\u00f5es sequenciais ou paralelos de redu\u00e7\u00e3o de Map.
\nMelhoria de Desempenho para HashMaps com colis\u00f5es chave.<\/p>\n
4. JDBC <\/H2>
\n\tA conex\u00e3o com Banco de dados via JDBC-ODBC foi removida removed. Esta \u00e9 uma forma de acessar banco de dados
\nno ambiente windows realizando a configura\u00e7\u00e3o diretamente no sistema opercional. Nestes casos n\u00e3o \u00e9 necess\u00e1rio ter os drivers do banco de dados
\nna aplica\u00e7\u00e3o ou servidor JAVA. Veja um exemplo de conex\u00e3o JDBC-ODBC: aqui<\/a><\/p>\n5. O Java 8 n\u00e3o rodar\u00e1 no Windows XP<\/H2>
\n Nota oficial da Oracle:
\n “Desde 8 de abril de 2014, a Microsoft interrompeu o suporte do XP Windows e, portanto, ele n\u00e3o \u00e9 mais uma plataforma suportada.
\n Os usu\u00e1rios do XP n\u00e3o poder\u00e3o instalar o Java 8. Os usu\u00e1rios do Windows devem fazer upgrade para o Windows Vista ou posterior para instalar o Java 8.” Veja site oficial<\/a><\/p>\nConclus\u00e3o<\/H2>
\n H\u00e1 muitas novidades que mudam a forma de programar em Java. Alguns autores s\u00e3o categ\u00f3ricos em dizer que a inclus\u00e3o de Lambda no java 8 foi uma p\u00e9ssima ideia. THIERRY – RebelLabs Author (Em ingl\u00eas)<\/a>. Outros dizem que ajudar\u00e1 muito na produtividade por fazer mais com menos leia Peter Verhas (em Ingl\u00eas)<\/a> .
\n Acredito que o novo sempre causa uma certa repulsa, pois tende a nos tirar da zona de conforto. Lembro que isso aconteceu no Java 5 com a introdu\u00e7\u00e3o de Generics, ForEach e Enum que ao longo do tempo foram largamente aceitas e s\u00e3o muito utilizados hoje.<\/p>\n \u00c9 certo que a sintaxe fica menos intuitiva e isso se deve ao fato de tornar o Java uma linguagem funcional (resumo de linguagem funcional<\/a>).
\n O tempo dir\u00e1 se isto \u00e9 um acerto ou erro… enquanto isso vamos aplicar em nosso dia-a-dia. No mais… vida que segue!<\/b><\/p>\nLinks relacionados <\/H2>
\n Download do java 8<\/a>
\n Tutorial do Java 8<\/a>
\nNovidade Java 8<\/a>
\nGostou do post? Agrade\u00e7a o autor compartilhando nas redes sociais. Clique nos links abaixo:<\/H2><\/p>\n","protected":false},"excerpt":{"rendered":"
5 novidades do Java 8 Voc\u00ea ver\u00e1 no artigo de hoje as 5 novidades no Java 8 que mudar\u00e3o a forma de programa\u00e7\u00e3o em java. H\u00e1 melhorias de performance, novidades na manipula\u00e7\u00e3o de datas e a grande novidade que \u00e9 …<\/p>\n