
Hoje, uma nova versão do Java é lançada - Java / JDK 13. A corrida começou com o lançamento da primavera do JDK 12, realizado em 19 de março, e a bifurcação da filial principal ocorreu em 13 de junho. Alguém que perdemos no caminho como o JEP 343: Packaging Tool , mas, em geral, tudo está normal e é hora de colher os benefícios.
Você pode fazer o download da nova versão aqui . Abaixo do corte, haverá uma pequena visão geral dos JEPs frescos incluídos nesta versão.
Como você sabe, no JDK 11, temos um novo GC - ZGC brilhante, escalável, rápido e com baixa pausa. Bem, ou pelo menos essa é a ideia. Um problema bastante sério nele era que ele se comportava como um cachorro na manjedoura e não abandonava a memória ocupada, mesmo que não fosse necessário. Shenandoah e G1 começaram a compartilhar há muito tempo, e o comportamento do ZGC parecia criminalmente apertando as mãos. Bem, agora tudo está resolvido, logo após o tempo limite em -XX:ZUncommitDelay
, recuperamos nossos bytes.
O próprio recurso CDS permite adicionar classes carregáveis a um arquivo comum, acelerando a inicialização e reduzindo a quantidade de RAM desperdiçada. Infelizmente, antes de ser um pouco idiota você ter que reiniciar o aplicativo várias vezes, formando uma lista dessas classes e depois também colocar as mãos nessa lista. Agora, os robôs estão funcionando, não os humanos: quando a opção -XX:ArchiveClassesAtExit
, as classes são automaticamente despejadas no arquivo morto após um desligamento normal do aplicativo.

Stuart Marks - Doctor Deprecator, membro consultor da equipe técnica da Oracle + olegchir no Oracle Code One, alguns minutos após o anúncio do Java 13
Em todas as javas (agora obsoletas), net.Socket
e java.net.ServerSocket
baseadas em uma mistura infernal de Java e código C, da qual até os teóricos do desempenho mais experientes choram. O problema foi resolvido escrevendo uma nova implementação usando a mesma infraestrutura interna da NIO, de modo que quase não precisa de seu próprio código nativo. Bem, no entanto, isso não é legado, eles escreveram tudo lindamente e adequado para mudar para as fibras do projeto Loom. Se for interessante, é necessário olhar para a classe NioSocketImpl
.
Continuamos nos preparando para a chegada da correspondência de padrões. Switch Expressions é o primeiro recurso que permite escrever o código do formulário:
int j = switch (day) { case MONDAY -> 0; case TUESDAY -> 1; default -> { int k = day.toString().length(); int result = f(k); yield result; } };
Como vemos no exemplo, desde o JDK 12, temos uma mudança cosmética: o break
mudou para yield
, agora tudo é como todas as pessoas normais.
JEP 326: Literais de cordas cruas entraram na faca, mas seus negócios continuam vivos! "Diga ao camarada Stalin - ocorreu um erro terrível . " Blocos de texto é um novo recurso de visualização que permite fazer sem escapar, formata as linhas de maneira conveniente, fabrica café com espuma e milagrosamente fornece controle sobre o formato da sequência resultante.
Mais mundano, agora qualquer carrasco sem a necessidade de aprender JSP pode escrever algo como:
String html = """ <html> <body> <p>Hello, world</p> </body> </html> """;
Um DBA iniciante poderá construir uma carreira começando com o seguinte código:
String query = """ SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB` WHERE `CITY` = 'NEW DEHLI' ORDER BY `EMP_ID`, `LAST_NAME`; """;

Parece um pouco ameaçador
Advertência
Uma visão geral do JEP é uma pequena parte do que você pode e deve dizer sobre o novo Java. Esta revisão completa também deve incluir uma revisão abrangente de inovações táticas interessantes e uma visão geral dos erros no rastreador de erros. Talvez alguém ( lany , ay!) Consiga continuar esse trabalho. Agora, minha equipe e eu estamos no Oracle Code One - infelizmente, sentados em relatórios ou apoiados no estande Liberica JDK - é muito difícil escrever algo por tanto tempo. De qualquer forma, este é um tópico para um site de hub completamente diferente.

Brian Goetz - Arquiteto para a linguagem Java na Oracle + olegchir no Oracle Code One
E também temos uma conferência do Joker, onde você pode discutir a necessidade de mudar para o Java 13, o momento da transição para o ZGC, a quantidade de estoque de pipoca necessária após a introdução dos Blocos de Texto e outros problemas relevantes. Os ingressos, como sempre, podem ser adquiridos no site oficial .