Blog do Aguiar

Novidades e Melhorias do Java 18

Java 18

Java 18

Java 18, lançado em março de 2022, introduziu uma série de melhorias incrementais e novas funcionalidades que continuam a evolução da linguagem e da plataforma Java. Embora não seja uma versão de suporte a longo prazo (LTS), Java 18 apresenta recursos experimentais e aprimoramentos importantes. Esses recursos ajudam desenvolvedores a explorar novas possibilidades e preparar suas aplicações para o futuro. Neste artigo, destacamos as principais novidades do Java 18.

1. Pattern Matching for switch (Second Preview)

O Java 18 revisou e reintroduziu a funcionalidade de Pattern Matching para o operador switch como preview (JEP 420). Isso permite usar padrões mais expressivos e flexíveis nos blocos switch, melhorando a legibilidade e a concisão do código. Por exemplo:

static String formatterPatternSwitch(Object obj) {
    return switch (obj) {
        case Integer i -> String.format("int %d", i);
        case Long l    -> String.format("long %d", l);
        case Double d  -> String.format("double %f", d);
        case String s  -> String.format("String %s", s);
        default        -> obj.toString();
    };
}

2. UTF-8 by Default (JEP 400)

Java 18 padroniza o uso de UTF-8 como o charset padrão para APIs que dependem de um charset padrão do sistema (JEP 400). Como resultado, isso proporciona maior consistência e previsibilidade no processamento de texto, especialmente em ambientes de execução multiculturais e internacionalizados.

3. Simple Web Server (JEP 408)

Java 18 introduziu um servidor web simples para desenvolvimento e testes. Este servidor é uma ferramenta leve que pode servir arquivos estáticos e fornecer suporte básico a APIs RESTful. Por exemplo, você pode iniciar o servidor com o seguinte comando:

$ jwebserver

4. Code Snippets in Java API Documentation (JEP 413)

Java 18 introduziu uma nova tag @snippet na documentação do Javadoc. Isso permite a inclusão de exemplos de código que podem ser verificados e testados de forma automatizada. Como resultado, a qualidade e a utilidade da documentação oficial do Java melhoram significativamente:

/**
 * This is an example of a method.
 * {@snippet :
 * if (list.isEmpty()) {
 *     throw new IllegalArgumentException("list must not be empty");
 * }
 * }
 */

5. Vector API (Third Incubator)

A Vector API, introduzida em versões anteriores como incubadora, continua a ser desenvolvida no Java 18 (JEP 417). Esta API permite o uso de operações vetoriais de forma eficiente, utilizando as instruções de hardware disponíveis. Por exemplo:

VectorSpecies SPECIES = IntVector.SPECIES_256;
IntVector v1 = IntVector.fromArray(SPECIES, a, 0);
IntVector v2 = IntVector.fromArray(SPECIES, b, 0);
IntVector v3 = v1.add(v2);
v3.intoArray(c, 0);

6. Foreign Function & Memory API (Second Incubator)

A Foreign Function & Memory API (JEP 419) continua em desenvolvimento como uma funcionalidade incubadora. Esta API permite que programas Java acessem de forma segura e eficiente memória fora do heap e chamem funções nativas. Por exemplo:

MemorySegment segment = MemorySegment.allocateNative(100);
MemoryAccess.setIntAtOffset(segment, 0, 42);

7. Deprecate Finalization for Removal (JEP 421)

Java 18 marcou a finalização, um mecanismo que permite a limpeza de recursos antes que um objeto seja coletado pelo garbage collector, para descontinuação futura. Em vez disso, recomenda-se usar métodos de limpeza mais previsíveis, como try-with-resources.

Conclusão

Java 18 continua a tradição de lançamentos frequentes de novas versões, trazendo uma série de melhorias e novas funcionalidades que melhoram a experiência do desenvolvedor e a performance das aplicações. Com a introdução do Pattern Matching para switch, a adoção de UTF-8 como padrão, o Simple Web Server para desenvolvimento rápido, e novas APIs aprimoradas para operações vetoriais e de memória nativa, Java 18 oferece um conjunto robusto de ferramentas para desenvolvedores modernos.

Essa versão serve como um excelente laboratório para experimentar novas funcionalidades que podem se tornar padrão em versões futuras. Portanto, a atualização para Java 18 é recomendada para desenvolvedores que desejam explorar as mais recentes capacidades da plataforma e preparar suas aplicações para as próximas evoluções da linguagem Java.

 

Share this content:

Sair da versão mobile