Javase next

749 views

Published on

O Java 8 certamente trouxe muitas novidades! Melhorias de código e facilidades tornando a vida do programador muito mais fácil. Mas o Java parou por ai? Quais são os próximos passos da plataforma? Conheça os próximos passos por aqueles que estão fazendo o futuro da tecnologia utilizada por milhões de pessoas.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
749
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
18
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Javase next

  1. 1. Java SE next Otávio Santana @otaviojava Bruno Souza @brjavaman
  2. 2. Empresas AMD Azul Systems, Inc. Canonical Google IBM Intel Oracle RedHat SAP Software Company Stratus Twitter
  3. 3. Lançamento do Java 8 ● Lambda ● Metaspace ● Stream
  4. 4. Java 9 ● Build: 25 ● https://jdk9.java.net/download/ ● Java 8 mais rápido
  5. 5. Java 9 Reflections wrappers Regex Security Core 0 50 100 150 200 250 Java 8 - Processo Java 9 - Processo Java 8 - Memória Java 9 - Memória
  6. 6. MetaSpace ● Muito Além do Heap ● Matar o PermGem ● Menor responsabilidade ● Código mais limpo :)
  7. 7. Melhorias na GC ● Remoções de Combinações depreciadas ● Remoção de String duplicadas ● Segmentos de cache de Códigos - JIT
  8. 8. Removendo Strings duplicadas ● 25% do Heap são de Strings ● 13.5% String duplicadas Heap Outros Objetos String String dentro do Heap String Strings duplicadas
  9. 9. JIT ● JVM internal (non-method) code ● Profiled-code ● Non-profiled code
  10. 10. GC mais inteligente ● Self Tunning ● Alocação agressiva ● JMM Update ● Smart Compilation
  11. 11. Projeto Sumatra ● Uso de GPU
  12. 12. JavaFX ● http://openjdk.java.net/projects/openjfx/ ●
  13. 13. Jigsaw ● Atualizado e candidato: 08/08/2014 ● Código, JDK modularizado
  14. 14. Novidades ● Leitura e escrita no JSON ● Genéricos para primitivos ● builders para as Coleções ● Literal para coleções
  15. 15. Novidades ● List<String> list = List.of(a, b, c); ● Set<String> set = Set.of(d, e, f, g); ● Map<String,String> map = Map.of(k1, V1); ● List<Integer> list = #[ 1, 2, 3 ];
  16. 16. Dinheiro: Como tratar? ● Double ● Float ● BigDecimal ● String
  17. 17. Dinheiro: Como tratar? Código espalhado Não padronização Comparação
  18. 18. Dinheiro: Como tratar? Cria o tipo Money Centraliza formatação Comportamento Fica mais OO
  19. 19. Dinheiro: Como tratar? ● Padrão de Moeda ● Cotação ● Formatação por país ● ISO 4217
  20. 20. Dinheiro: Como tratar? Negócio Dinheiro ● Banco os tipos/formatos ● Coloca no dicionário ● Arredondamento ● Busca a cotação
  21. 21. MoneyApi ● Controle de Dinheiro ● Formatar ● Arredondar ● Conversão
  22. 22. MoneyApi CurrencyUnit euro = MonetaryCurrencies.getCurrency("EUR"); Money money = Money.of(120, euro); NumberValue number = money.getNumber(); BigDecimal value = number.numberValue(BigDecimal.class);
  23. 23. MoneyApi CurrencyUnit euro = MonetaryCurrencies.getCurrency(Locale.GERMAN); Money m = Money.of(120, euro); NumberValue number = m.getNumber(); BigDecimal value = number.numberValue(BigDecimal.class);
  24. 24. MoneyApi Money noMoney = Money.of(0, euro); Money m1 = Money.of(10, euro); Money m2 = Money.of(30, euro); Money m3 = Money.of(40, euro); List<Money> moneys = Arrays.asList(m1, m2, m3); Money sum = moneys.stream().reduce((ma, mb) -> ma.add(m2)).orElse(noMoney);
  25. 25. MoneyApi Money sum = Stream.of(m1, m2, m3).reduce((ma, mb) -> ma.add(m2)).orElse(noMoney); List<Money> euros = stream.filter(m -> m.getCurrency().equals(euro)).collect(Collectors.toList()); Map<CurrencyUnit, List<Money>> mapMoney = stream.collect(Collectors.groupingBy(Money::getCurrency));
  26. 26. MoneyApi NumberValue sum = stream.map(m -> m.getNumber()).reduce((mA, mB) -> mA.add(mB)).orElseThrow(() -> new RuntimeException("É necessário ter dinheiro")); Map<Boolean, List<Money>> positives = stream.collect(Collectors.partitioningBy(Money::isPositive));
  27. 27. MoneyApi MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(Locale.US); String texto = format.format(m);//12,50 USD format = MonetaryFormats.getAmountFormat(AmountFormatQueryBuild er.create(Locale.US).set(CurrencyStyle.SYMBOL).build()); String texto = format.format(m);//$123,456.56
  28. 28. MoneyApi ExchangeRateProvider prov = MonetaryConversions.getExchangeRateProvider("ECB"); MonetaryAmount d2e = prov.getCurrencyConversion(euro).apply(mDollar);
  29. 29. MoneyApi ExchangeRateProvider prov = MonetaryConversions.getExchangeRateProvider("IMF"); MonetaryAmount d2e = prov.getCurrencyConversion(euro).apply(mDollar);
  30. 30. Unidade de Medida ● Semelhante ao Money ● Padronizar unidades de Medidas ● Formatar ● Operações
  31. 31. Unidade de Medida QuantityFactory<Mass> instance = QuantityFactory.getInstance(Mass.class); Quantity<Mass> m = instance.create(10, KILOGRAM);
  32. 32. Unidade de Medida QuantityFactory<Time> timeFactory = QuantityFactory.getInstance(Time.class); Quantity<Time> m1 = timeFactory.create(40, MINUTE); Quantity<Time> m2 = timeFactory.create(20, MINUTE); Quantity<Time> h1 = m1.add(m2).to(HOUR);
  33. 33. Unidade de Medida ● Acceleration ● Length ● Angle ● Area ● Mass ● Power ● Energy ● Speed ● Force ● Temperature ● Time ● Information ● Volume E muito mais! No total de 52 medidas
  34. 34. Obrigado Otávio Santana @otaviojava Bruno Souza @brjavaman

×