O próximo lançamento de suporte a longo prazo do Java standard, Java Development Kit (JDK) 21, está agendado para Setembro e abrangerá colecções sequenciadas, fios virtuais, modelos de string, e uma API de função e memória estrangeira (em pré-visualização). Estas características são definidas para melhorar a experiência dos programadores em áreas que vão desde a escrita até à manutenção e monitorização de aplicações concorrentes de alto rendimento.
Embora ainda não oficialmente listadas na página de lançamento do JDK 21, acredita-se que a função estrangeira e a pré-visualização da API de memória tenham sido adicionadas recentemente. Esta API permite que os programas Java interoperem suavemente com código e dados para além do tempo de execução Java. Permite uma comunicação eficiente com funções estrangeiras e um acesso seguro à memória estrangeira, permitindo aos programas Java interagir com bibliotecas nativas e processar dados nativos sem a fragilidade e o risco representado pela Interface Nativa Java (JNI).
A função estrangeira e a API de memória foi previamente prevista em JDK 20 e JDK 19, que foram lançados em Março e Setembro do ano passado, respectivamente. A última pré-visualização inclui melhoramentos como caminhos de layout melhorados, gestão centralizada da vida útil dos segmentos nativos na interface Arena, implementação de um linker nativo de recurso, e remoção da VaList. Os objectivos para esta API abrangem facilidade de utilização, desempenho, generalidade, e segurança. No entanto, não pretende substituir a JNI ou alterá-la de qualquer forma.
JDK 21 trará também fios virtuais finalizados, que são fios leves que são grandes promessas para reduzir drasticamente os desafios de escrita, manutenção, e observação de aplicações simultâneas de alto rendimento. Os objectivos por detrás desta característica incluem permitir que as aplicações de servidor escalem eficazmente com uma utilização óptima do hardware, promovendo a adopção de threads virtuais com alterações mínimas ao código API lang.Thread existente, e simplificando a depuração de threads virtuais e a criação de perfis com as ferramentas JDK actuais. JDK 21 assegurará suporte completo para variáveis locais de threads com threads virtuais, aumentando a compatibilidade com bibliotecas existentes e ajudando a migração de código baseado em tarefas para utilizar threads virtuais.
As colecções sequenciadas são outro conjunto de características a acompanhar o JDK 21. Estas interfaces permitem a representação de colecções com uma ordem de encontro clara, em que cada colecção tem um primeiro e segundo elementos bem definidos e assim por diante. Serão fornecidas APIs uniformes para facilitar o acesso ao primeiro e último elementos e a inversão da ordem de processamento dos elementos. Ao definir interfaces sequenciais para colecções, conjuntos, e mapas, esta proposta visa preencher lacunas no quadro de colecções de Java e satisfazer as exigências dos utilizadores de longa data.
Os modelos de cordas serão estreados como uma funcionalidade de pré-visualização no JDK 21, melhorando os literals de cordas e blocos de texto existentes em Java através da fusão de texto literal com expressões e processadores incorporados para gerar resultados especializados. A principal intenção por detrás desta funcionalidade é simplificar a programação Java, tornando fácil a expressão de strings que incorporem valores calculados em tempo de execução. Os modelos de strings são concebidos para melhorar a legibilidade das expressões, aumentar a segurança do programa, manter a flexibilidade, e facilitar o trabalho com APIs que aceitam strings escritas em outras linguagens que não Java.
De acordo com o plano de lançamento proposto para JDK 21, a lista de funcionalidades será congelada após as fases de rampdown a 8 de Junho e 20 de Julho, durante as quais as correcções de bugs continuam. Os candidatos ao lançamento inicial e final seguir-se-ão a 10 de Agosto e 24 de Agosto, sendo ainda possível a correcção de bugs. A disponibilidade geral está prevista para 19 de Setembro.
JDK 21 será um apoio de longo prazo (LTS), fornecendo cinco anos de apoio de Premier e apoio prolongado até Setembro de 2031. JDK 17, a actual versão LTS, foi lançada em Setembro de 2021. Lançamentos não LTS, incluindo JDK 20 e JDK 19, recebem apenas seis meses de apoio de Premier e nenhum apoio prolongado.
As implementações padrão Java por Oracle são publicadas de seis em seis meses, e as potenciais funcionalidades para JDK 21 incluem todas as funcionalidades de incubação e pré-visualização em JDK 20. Estas podem incluir valores escalonados, padrões de registo, e correspondência de padrões para declarações de comutação, bem como genéricos universais, o colector de lixo Z geracional, e a pilha assíncrona VM API. Outras plataformas de vanguarda como as plataformas sem código e de baixo código, tais como AppMaster, também podem beneficiar destes avanços na tecnologia Java.