JavaRush /Blogue Java /Random-PT /Pausa para café #154. Três tipos de loops em Java. JDK 19...

Pausa para café #154. Três tipos de loops em Java. JDK 19: Novos recursos do Java 19 chegando em setembro

Publicado no grupo Random-PT

Três tipos de loops em Java

Fonte: Médio Depois de ler este post, você aprenderá sobre diferentes formas de fazer loop em Java. Pausa para café #154.  Três tipos de loops em Java.  JDK 19: Novos recursos do Java 19 chegando em setembro - 1Um Loop é projetado para executar um bloco de código até que uma condição se torne verdadeira. Existem três tipos de loops em Java:
  • enquanto
  • fazer enquanto
  • para

Enquanto loop

O loop while se repete até que a condição booleana especificada seja avaliada como verdadeira. Conforme mostrado no diagrama abaixo, a instrução será executada até que o teste de condição retorne verdadeiro. Pausa para café #154.  Três tipos de loops em Java.  JDK 19: Novos recursos do Java 19 chegando em setembro - 2

Sintaxe

while (condition true) {
       // Блок codeа
}

Exemplo

Aqui, o loop while será executado até que a condição seja verdadeira para x menor que 3.
public class WhileLoop {
     static int x = 1;
     public static void main(String[] args) {
         while(x < 3) {
             System.out.println("x = "+x);
             x++;
         }
     }
}
Conclusão:
x = 1 x = 2

loop do-while

Um loop do-while é semelhante a um loop while com uma pequena diferença. O loop do-while sempre é executado uma vez antes de testar a condição. Pausa para café #154.  Três tipos de loops em Java.  JDK 19: Novos recursos do Java 19 chegando em setembro - 3

Sintaxe

do {
     //  Блок codeа
   } while(condition);

Exemplo

Neste exemplo, você pode ver que a instrução do ou bloco de código é sempre executado uma vez antes de testar se a condição é verdadeira ou falsa.
static int x = 5;
        public static void main(String[] args) {
            do {
                System.out.println("x = "+x);
                x++;
            } while(x < 3);
        }
Conclusão
x = 5

para loop

O loop for é muito diferente dos loops while e do-while. Em uma linha de instrução definimos inicialização, condição (verdadeira ou falsa), incremento/decremento. Pausa para café #154.  Três tipos de loops em Java.  JDK 19: Novos recursos do Java 19 chegando em setembro - 4

Sintaxe

For (initialization; condition; increment/decrement) {
    // Блок codeа
}

Exemplo

public static void main(String[] args) {
     for(int i = 0 ; i < 2 ; i++) {
         System.out.println("i = " + i);
     }
}
Conclusão:
eu=0 eu=1
Inicialização: int i = 0 é a condição de inicialização do loop. Condição: verifica se a condição para executar o bloco ou código dentro do loop for é verdadeira. Se a condição for falsa, o loop será encerrado. Incremento/decremento: atualiza a variável para a próxima iteração.

Loop for estendido (para cada)

Existe outra versão do loop for que é mais compacta e legível do que um loop for simples. É chamado de loop for estendido (ou loop for-each) e é usado para iterar por coleções e arrays. Está disponível para qualquer objeto que implemente a interface Iterable.

Exemplo

class Main
{
    public static void main(String[] args)
    {
        int[] A = { 1, 2, 3, 4, 5 };

        for (int i: A) {
            System.out.println(i);
        }
    }
}
Conclusão:
1 2 3 4 5

JDK 19: Novos recursos do Java 19 chegando em setembro

Fonte: Infoworld Aqui está uma lista de novos recursos que aparecerão na próxima versão do JDK. Seu lançamento está previsto para 20 de setembro de 2022. O Java Development Kit 19, uma versão de suporte de curto prazo prevista para setembro, atingiu o estágio de release candidate. Existem sete recursos a serem observados: paralelismo estruturado, modelos de registro, visualização de APIs externas e de memória e suporte para a arquitetura de conjunto de instruções (ISA) Linux/RISC-V de código aberto. Como os novos recursos já estão congelados para o JDK 19, outros recursos planejados, como genéricos e objetos de valor, estão sendo adiados para uma versão posterior da plataforma. Normalmente, uma nova versão do Java é lançada a cada seis meses. O release candidate do JDK 19 foi publicado em 11 de agosto, após dois lançamentos em junho e julho. O segundo release candidate é esperado para 25 de agosto. As primeiras compilações do JDK 19 podem ser baixadas em jdk.java.net/19 . Os recursos do JDK 19 incluem:
  • Paralelismo estruturado (durante a fase de incubação). Ele foi projetado para simplificar a programação multithread usando a API de simultaneidade estruturada. Esse paralelismo trata múltiplas tarefas executadas em threads diferentes como uma única unidade de trabalho. Conseqüentemente, isso simplificará o tratamento e o cancelamento de erros, e a confiabilidade também será melhorada.

  • Visualização de modelos de registro (para análise de valores de registro). Padrões de registro e padrões de tipo agora podem ser aninhados, fornecendo uma forma declarativa, poderosa e combinável de navegação e manipulação de dados. O novo recurso inclui estender a correspondência de padrões para expressar consultas de dados compostos mais complexas sem alterar a sintaxe ou a semântica dos padrões de tipo.

    Esta inovação baseia-se na correspondência de padrões, por exemplo, introduzida no JDK 16 em março de 2021. Versões futuras podem exigir que os modelos de registro sejam estendidos com recursos como modelos de array e modelos vararg.

    Os modelos de postagem fazem parte do projeto Amber , que visa explorar e desenvolver pequenos recursos Java orientados ao desempenho.

  • Versões prévias das funções da API externa e de memória . A nova versão apresentará uma API que permite que programas Java interajam com código e dados fora do tempo de execução Java. Ao chamar com eficiência funções de terceiros (ou seja, código fora da JVM) e acessar com segurança a memória externa (memória não gerenciada pela JVM), a API permitirá que programas Java chamem bibliotecas nativas e processem dados nativos sem as desvantagens do Java. Interface Nativa (JNI).

    A API externa e de memória combinam duas APIs de incubação anteriores: a API de acesso à memória externa e a API do vinculador externo. A função externa e a API de memória foram previamente incubadas no JDK 17 e reincubadas no JDK 18.

  • Visualização de threads virtuais. Esse recurso introduz threads leves que reduzem bastante o esforço de gravação, manutenção e monitoramento de aplicativos paralelos de alto desempenho. O objetivo da inovação é fornecer a capacidade de dimensionar aplicativos de servidor escritos em um estilo simples de thread por solicitação. O recurso tem como alvo o código que usa a API java.lang Thread para injetar threads virtuais com alterações mínimas e para solucionar problemas, depurar e criar perfil de threads virtuais usando ferramentas JDK existentes.

  • Terceira visualização da correspondência de padrões para expressões e instruções switch . Ele estende a correspondência de padrões para switch, o que permitirá que uma expressão seja testada em relação a vários padrões, cada um com um efeito específico, para que consultas complexas centradas em dados possam ser expressas de forma concisa e segura.

    Esse recurso foi visualizado anteriormente no JDK 17 e JDK 18. A terceira visualização adiciona melhorias, incluindo a substituição de padrões protegidos quando por cláusulas em blocos switch. Além disso, a semântica de tempo de execução do padrão switch quando o valor da expressão do seletor é nulo agora oferece suporte à semântica de switch herdada.

    A inovação expandirá a expressividade e aplicabilidade de expressões e operadores switch, permitindo que padrões apareçam em rótulos de casos. Ele também dará aos desenvolvedores a capacidade de relaxar a animosidade histórica em relação a nulos e switches quando necessário, melhorar a segurança das instruções switch e garantir que as instruções switch e instruções existentes continuem a ser compiladas inalteradas e executadas com semântica idêntica.

  • Quarta incubação do vetor API . Ele expressará cálculos vetoriais que são compilados de forma confiável em tempo de execução em instruções vetoriais ideais em arquiteturas de processador suportadas. Isso fornecerá melhor desempenho do que cálculos escalares equivalentes. Os desenvolvedores que usam a API ganham a capacidade de escrever algoritmos vetoriais complexos em Java usando o autovetorizador do HotSpot, mas com um modelo personalizado que torna a vetorização mais previsível e confiável. A API Vector foi incubada anteriormente no JDK 16, JDK 17 e JDK 19.

    A API Vector estenderá operações lineares integrais bit a bit, incluindo operações como contar o número de bits, reverter a ordem dos bits e compactar e expandir bits.

  • A porta Linux/RISC-V Java ganhará suporte ao conjunto de instruções de hardware que já é suportado por uma ampla gama de kits de ferramentas de linguagem. A porta Linux/RISC-V agora suportará a configuração RV64GV RISC-V, um ISA de uso geral de 64 bits que inclui instruções vetoriais.

    A porta também suportará as seguintes opções de máquina virtual HotSpot: interpretador de modelo, compilador C1 JIT (cliente), compilador C2 JIT (servidor) e todos os principais coletores de lixo atuais, incluindo ZGC e Shenandoah.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION