11 Java Enhancement Proposals (JEP’s) u Visa reduzir o tamanho dos pacotes u Divide a JDK em pedaços – Módulos u Módulo Principal (Root) é java.base u It’s Java – 100% backwards compatible 9
partir do Java 9 u Substitui Concurrent Mark Swap (CMS) – Stop the world u Tempo de pausa menor u Memória dividida em regiões entre 1-32MB u Objectivo é ter 2048 regiões (Heap) 9
tipo de variável u Não pode ser atributo da classe u Não tem relação com var/val do Scala/Kotlin u String nome = “Rodrigo”; u var nome = “Rodrigo”; u var myMap = new HashMap(); //Map<Object, Object>() u Precisa ser inicializado – var idade; //Não válido u var var = “var”; 10
u Parallel G1 GC para melhorar performance do full GC u AppCDS para melhorar start-up time u Novas API’s para criação de coleções u List.copyOf(), Set.copyOf(), e Map.copyOf() u Stream API pode coletar dados em um coleção não modificável u toUnmodifiableList(), toUnmodifiableSet(), e toUnmodifiableMap() 10
Experimental u Microbenchmark Suite - baseado no JMH u Default CDS Archives – Melhora o tempo para gerar um arquivo CDS u Melhorias ao G1. Retorna memória quando aplicação está idle. Antes apenas com Full GC 12
É possível saber qual objeto é null list.get(0).getNome().trim(); u Mas quem é null? Lista? Nome? Cannot invoke "String.trim()" because the return value of "dev.graciano.Pessoa.getNome()" is null 14
{ public static void main(String... args) { System.out.print(”Hora da \uD83C\uDF7A"); System.out.println(" ou do \u2615"); } } 10/11 Slide extraído de https://speakerdeck.com/boyarsky