JavaRush /Blog Java /Random-ES /Pausa para el café #154. Tres tipos de bucles en Java. JD...

Pausa para el café #154. Tres tipos de bucles en Java. JDK 19: nuevas funciones de Java 19 disponibles en septiembre

Publicado en el grupo Random-ES

Tres tipos de bucles en Java

Fuente: Medio Después de leer esta publicación, aprenderá sobre las diferentes formas de realizar bucles en Java. Pausa para el café #154.  Tres tipos de bucles en Java.  JDK 19: Nuevas funciones de Java 19 disponibles en septiembre - 1Un bucle está diseñado para ejecutar un bloque de código hasta que una condición se vuelve verdadera. Hay tres tipos de bucles en Java:
  • mientras
  • hacer mientras
  • para

Mientras bucle

El bucle while se repite hasta que la condición booleana especificada se evalúa como verdadera. Como se muestra en el diagrama siguiente, la declaración se ejecutará hasta que la prueba de condición devuelva verdadero. Pausa para el café #154.  Tres tipos de bucles en Java.  JDK 19: Nuevas funciones de Java 19 disponibles en septiembre - 2

Sintaxis

while (condition true) {
       // Блок códigoа
}

Ejemplo

Aquí el bucle while se ejecutará hasta que la condición sea verdadera 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++;
         }
     }
}
Conclusión:
x = 1 x = 2

bucle hacer-mientras

Un bucle do- while es similar a un bucle while con una pequeña diferencia. El ciclo do- while siempre se ejecuta una vez antes de probar la condición. Pausa para el café #154.  Tres tipos de bucles en Java.  JDK 19: Nuevas funciones de Java 19 disponibles en septiembre - 3

Sintaxis

do {
     //  Блок códigoа
   } while(condition);

Ejemplo

En este ejemplo, puede ver que la instrucción do o el bloque de código siempre se ejecuta una vez antes de probar si la condición es verdadera o falsa.
static int x = 5;
        public static void main(String[] args) {
            do {
                System.out.println("x = "+x);
                x++;
            } while(x < 3);
        }
Conclusión
x = 5

en bucle

El bucle for es muy diferente de los bucles while y do- while. En una línea de declaración definimos inicialización, condición (verdadera o falsa), incremento/decremento. Pausa para el café #154.  Tres tipos de bucles en Java.  JDK 19: Nuevas funciones de Java 19 disponibles en septiembre - 4

Sintaxis

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

Ejemplo

public static void main(String[] args) {
     for(int i = 0 ; i < 2 ; i++) {
         System.out.println("i = " + i);
     }
}
Conclusión:
yo=0 yo=1
Inicialización: int i = 0 es la condición de inicialización del bucle. Condición: comprueba si la condición para ejecutar el bloque o código dentro del bucle for es verdadera. Si la condición es falsa, esto finalizará el ciclo. Incremento/decremento: actualiza la variable para la siguiente iteración.

Bucle for extendido (para cada uno)

Existe otra versión del bucle for que es más compacta y legible que un bucle for simple. Se llama bucle for extendido (o bucle for-each) y se utiliza para iterar a través de colecciones y matrices. Está disponible para cualquier objeto que implemente la interfaz Iterable.

Ejemplo

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

        for (int i: A) {
            System.out.println(i);
        }
    }
}
Conclusión:
1 2 3 4 5

JDK 19: nuevas funciones de Java 19 disponibles en septiembre

Fuente: Infoworld Aquí hay una lista de nuevas funciones que aparecerán en la próxima versión de JDK. Su lanzamiento está previsto para el 20 de septiembre de 2022. Java Development Kit 19, una versión de soporte a corto plazo prevista para septiembre, ha alcanzado la etapa de versión candidata. Hay siete características a tener en cuenta: paralelismo estructurado, plantillas de registro, vista previa de API externas y de memoria, y soporte para la arquitectura de conjunto de instrucciones (ISA) Linux/RISC-V de código abierto. Dado que las nuevas funciones ya están congeladas para JDK 19, otras funciones planificadas, como las genéricas y los objetos de valor, se pospondrán a una versión posterior de la plataforma. Normalmente se lanza una nueva versión de Java cada seis meses. La versión candidata de JDK 19 se publicó el 11 de agosto, luego de dos versiones de reducción en junio y julio. Se espera que el segundo candidato a lanzamiento esté disponible el 25 de agosto. Las primeras versiones de JDK 19 se pueden descargar desde jdk.java.net/19 . Las características de JDK 19 incluyen:
  • Paralelismo estructurado (durante la fase de incubación). Está diseñado para simplificar la programación multiproceso utilizando la API de simultaneidad estructurada. Este paralelismo trata múltiples tareas que se ejecutan en diferentes subprocesos como una única unidad de trabajo. En consecuencia, esto simplificará el manejo y la cancelación de errores y también se mejorará la confiabilidad.

  • Vista previa de plantillas de registros (para analizar valores de registros). Ahora se pueden anidar patrones de registros y patrones de tipos, lo que proporciona una forma declarativa, poderosa y componible de navegación y manipulación de datos. La nueva característica incluye ampliar la coincidencia de patrones para expresar consultas de datos compuestos más complejas sin cambiar la sintaxis o la semántica de los patrones de tipos.

    Esta innovación se basa en la coincidencia de patrones, por ejemplo, introducida en JDK 16 en marzo de 2021. Es posible que las versiones futuras requieran que las plantillas de registros se amplíen con funciones como plantillas de matriz y plantillas vararg.

    Las plantillas de publicaciones son parte del proyecto Amber , cuyo objetivo es explorar y desarrollar pequeñas funciones de Java orientadas al rendimiento.

  • Vista previa de las funciones API externas y de memoria . La nueva versión introducirá una API que permitirá a los programas Java interactuar con código y datos fuera del tiempo de ejecución de Java. Al llamar de manera eficiente a funciones de terceros (es decir, código fuera de la JVM) y acceder de forma segura a la memoria externa (memoria no administrada por la JVM), la API permitirá que los programas Java llamen a bibliotecas nativas y procesen datos nativos sin los inconvenientes de Java. Interfaz nativa (JNI).

    La API externa y de memoria combinan dos API de incubación anteriores: la API de acceso a memoria externa y la API de vinculador externo. La función externa y la API de memoria se incubaron previamente en JDK 17 y se volvieron a incubar en JDK 18.

  • Vista previa de hilos virtuales. Esta característica introduce subprocesos livianos que reducen en gran medida el esfuerzo de escribir, mantener y monitorear aplicaciones paralelas de alto rendimiento. El propósito de la innovación es brindar la capacidad de escalar aplicaciones de servidor escritas en un estilo simple de subproceso por solicitud. La característica apunta al código que utiliza la API Java.lang Thread para inyectar subprocesos virtuales con cambios mínimos y para solucionar problemas, depurar y perfilar subprocesos virtuales utilizando herramientas JDK existentes.

  • Tercera vista previa de la coincidencia de patrones para expresiones y declaraciones de cambio. Extiende la coincidencia de patrones al cambio, lo que permitirá probar una expresión con una serie de patrones, cada uno con un efecto específico, de modo que las consultas complejas centradas en datos se puedan expresar de manera concisa y segura.

    Esta característica se presentó previamente en JDK 17 y JDK 18. La tercera vista previa agrega mejoras, incluida la sustitución de patrones protegidos cuando con cláusulas en bloques de interruptores. Además, la semántica de tiempo de ejecución del patrón de cambio cuando el valor de la expresión del selector es nulo ahora admite la semántica de cambio heredada.

    La innovación ampliará la expresividad y aplicabilidad de las expresiones y operadores de cambio al permitir que aparezcan patrones en las etiquetas de los casos. También brindará a los desarrolladores la capacidad de relajar la animosidad histórica hacia los valores nulos y los cambios cuando sea necesario, mejorar la seguridad de las declaraciones de cambio y garantizar que las declaraciones de cambio existentes y las declaraciones continúen compilándose sin cambios y ejecutándose con una semántica idéntica.

  • Cuarta incubación de vector API . Expresará cálculos vectoriales que se compilan de manera confiable en tiempo de ejecución en instrucciones vectoriales óptimas en arquitecturas de procesador compatibles. Esto proporcionará un mejor rendimiento que los cálculos escalares equivalentes. Los desarrolladores que utilizan la API obtienen la capacidad de escribir algoritmos vectoriales complejos en Java utilizando el autovectorizador de HotSpot, pero con un modelo personalizado que hace que la vectorización sea más predecible y confiable. El Vector API se incubó previamente en JDK 16, JDK 17 y JDK 19.

    Vector API ampliará las operaciones lineales integrales bit a bit, incluidas operaciones como contar el número de bits, invertir el orden de los bits y comprimir y expandir bits.

  • El puerto Linux/RISC-V Java obtendrá soporte para conjuntos de instrucciones de hardware que ya son compatibles con una amplia gama de kits de herramientas de lenguaje. El puerto Linux/RISC-V ahora admitirá la configuración RV64GV RISC-V, un ISA de propósito general de 64 bits que incluye instrucciones vectoriales.

    El puerto también admitirá las siguientes opciones de máquina virtual HotSpot: intérprete de plantillas, compilador C1 JIT (cliente), compilador C2 JIT (servidor) y todos los principales recolectores de basura actuales, incluidos ZGC y Shenandoah.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION