JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 154. Drei Arten von Schleifen in Java. JD...

Kaffeepause Nr. 154. Drei Arten von Schleifen in Java. JDK 19: Neue Java 19-Funktionen kommen im September

Veröffentlicht in der Gruppe Random-DE

Drei Arten von Schleifen in Java

Quelle: Medium Nachdem Sie diesen Beitrag gelesen haben, erfahren Sie mehr über verschiedene Arten der Schleifenbildung in Java. Kaffeepause Nr. 154.  Drei Arten von Schleifen in Java.  JDK 19: Neue Java 19-Funktionen kommen am 1. SeptemberEine Schleife dient dazu, einen Codeblock auszuführen, bis eine Bedingung wahr wird. In Java gibt es drei Arten von Schleifen:
  • während
  • tun-während
  • für

While-Schleife

Die while-Schleife wird wiederholt, bis die angegebene boolesche Bedingung wahr ist. Wie im Diagramm unten dargestellt, wird die Anweisung ausgeführt, bis der Bedingungstest „true“ zurückgibt. Kaffeepause Nr. 154.  Drei Arten von Schleifen in Java.  JDK 19: Neue Java 19-Funktionen kommen am 2. September

Syntax

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

Beispiel

Hier wird die while-Schleife ausgeführt, bis die Bedingung für x kleiner als 3 wahr ist.
public class WhileLoop {
     static int x = 1;
     public static void main(String[] args) {
         while(x < 3) {
             System.out.println("x = "+x);
             x++;
         }
     }
}
Abschluss:
x = 1 x = 2

do-while-Schleife

Eine do-while-Schleife ähnelt einer while-Schleife mit einem kleinen Unterschied. Die do-while-Schleife wird immer einmal ausgeführt, bevor die Bedingung getestet wird. Kaffeepause Nr. 154.  Drei Arten von Schleifen in Java.  JDK 19: Neue Java 19-Funktionen kommen am 3. September

Syntax

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

Beispiel

In diesem Beispiel können Sie sehen, dass die do-Anweisung oder der Codeblock immer einmal ausgeführt wird, bevor geprüft wird, ob die Bedingung wahr oder falsch ist.
static int x = 5;
        public static void main(String[] args) {
            do {
                System.out.println("x = "+x);
                x++;
            } while(x < 3);
        }
Abschluss
x = 5

for-Schleife

Die for-Schleife unterscheidet sich stark von den while- und do-while-Schleifen. In einer Anweisungszeile definieren wir Initialisierung, Bedingung (wahr oder falsch), Inkrementierung/Dekrementierung. Kaffeepause Nr. 154.  Drei Arten von Schleifen in Java.  JDK 19: Neue Java 19-Funktionen kommen am 4. September

Syntax

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

Beispiel

public static void main(String[] args) {
     for(int i = 0 ; i < 2 ; i++) {
         System.out.println("i = " + i);
     }
}
Abschluss:
i=0 i=1
Initialisierung: int i = 0 ist die Schleifeninitialisierungsbedingung. Bedingung: Prüft, ob die Bedingung für die Ausführung des Blocks oder Codes innerhalb der for-Schleife wahr ist. Wenn die Bedingung falsch ist, wird die Schleife beendet. Inkrementieren/Dekrementieren: Aktualisieren Sie die Variable für die nächste Iteration.

Erweiterte for-Schleife (for-each)

Es gibt eine andere Version der for-Schleife, die kompakter und lesbarer ist als eine einfache for-Schleife. Sie wird als erweiterte for-Schleife (oder for-each-Schleife) bezeichnet und zum Durchlaufen von Sammlungen und Arrays verwendet. Es steht jedem Objekt zur Verfügung, das die Iterable-Schnittstelle implementiert.

Beispiel

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

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

JDK 19: Neue Java 19-Funktionen kommen im September

Quelle: Infoworld Hier ist eine Liste der neuen Funktionen, die in der kommenden JDK-Version erscheinen werden. Die Veröffentlichung ist für den 20. September 2022 geplant. Java Development Kit 19, eine kurzfristige Support-Version, die im September erscheinen soll, hat das Release-Candidate-Stadium erreicht. Es gibt sieben Funktionen, auf die Sie achten sollten: strukturierte Parallelität, Datensatzvorlagen, Vorschau von Fremd- und Speicher-APIs und Unterstützung für die Open-Source-Befehlssatzarchitektur (ISA) Linux/RISC-V. Da neue Funktionen für JDK 19 bereits eingefroren sind, werden andere geplante Funktionen wie Generika und Wertobjekte auf eine spätere Version der Plattform verschoben. Normalerweise wird alle sechs Monate eine neue Version von Java veröffentlicht. Der Release Candidate für JDK 19 wurde am 11. August veröffentlicht, nach zwei Rampdown-Releases im Juni und Juli. Der zweite Release Candidate wird am 25. August erwartet. Frühe Builds von JDK 19 können unter jdk.java.net/19 heruntergeladen werden . Zu den JDK 19-Funktionen gehören:
  • Strukturierte Parallelität (während der Inkubationsphase). Es wurde entwickelt, um die Multithread-Programmierung mithilfe der Structured Concurrency API zu vereinfachen. Diese Parallelität behandelt mehrere Aufgaben, die in verschiedenen Threads ausgeführt werden, als eine einzige Arbeitseinheit. Dadurch wird die Fehlerbehandlung und -beseitigung vereinfacht und auch die Zuverlässigkeit verbessert.

  • Vorschau von Datensatzvorlagen (zum Parsen von Datensatzwerten). Datensatzmuster und Typmuster können jetzt verschachtelt werden und bieten so eine deklarative, leistungsstarke und zusammensetzbare Form der Navigation und Datenbearbeitung. Die neue Funktion umfasst die Erweiterung des Mustervergleichs, um komplexere zusammengesetzte Datenabfragen auszudrücken, ohne die Syntax oder Semantik von Typmustern zu ändern.

    Diese Innovation baut auf dem Mustervergleich auf, der beispielsweise im März 2021 in JDK 16 eingeführt wurde. Zukünftige Versionen erfordern möglicherweise, dass Datensatzvorlagen um Funktionen wie Array-Vorlagen und Vararg-Vorlagen erweitert werden.

    Post-Vorlagen sind Teil des Amber-Projekts , dessen Ziel es ist, kleine, leistungsorientierte Java-Funktionen zu erforschen und zu entwickeln.

  • Vorschauversionen der Fremd- und Speicher-API-Funktionen . Mit der neuen Version wird eine API eingeführt, die es Java-Programmen ermöglicht, mit Code und Daten außerhalb der Java-Laufzeitumgebung zu interagieren. Durch den effizienten Aufruf von Funktionen von Drittanbietern (d. h. Code außerhalb der JVM) und den sicheren Zugriff auf Fremdspeicher (Speicher, der nicht von der JVM verwaltet wird) ermöglicht die API Java-Programmen, native Bibliotheken aufzurufen und native Daten ohne die Nachteile von Java zu verarbeiten Native Schnittstelle (JNI).

    Die Fremd- und Speicher-API kombiniert zwei frühere Inkubations-APIs: die externe Speicherzugriffs-API und die externe Linker-API. Die Fremdfunktion und die Speicher-API wurden zuvor in JDK 17 inkubiert und in JDK 18 erneut inkubiert.

  • Vorschau auf virtuelle Threads. Mit dieser Funktion werden leichtgewichtige Threads eingeführt, die den Aufwand für das Schreiben, Verwalten und Überwachen leistungsstarker paralleler Anwendungen erheblich reduzieren. Der Zweck der Innovation besteht darin, die Möglichkeit zu bieten, Serveranwendungen zu skalieren, die in einem einfachen Thread-pro-Anfrage-Stil geschrieben sind. Die Funktion zielt auf Code ab, der die Thread-API java.lang verwendet, um virtuelle Threads mit minimalen Änderungen einzufügen und virtuelle Threads mit vorhandenen JDK-Tools zu beheben, zu debuggen und zu profilieren.

  • Dritte Vorschau des Mustervergleichs für Switch-Ausdrücke und -Anweisungen. Es erweitert den Mustervergleich auf Switch, wodurch ein Ausdruck anhand einer Reihe von Mustern getestet werden kann, von denen jedes einen bestimmten Effekt hat, sodass komplexe datenzentrierte Abfragen prägnant und sicher ausgedrückt werden können.

    Diese Funktion wurde zuvor in JDK 17 und JDK 18 in der Vorschau angezeigt. Die dritte Vorschau fügt Verbesserungen hinzu, einschließlich des Ersetzens geschützter When-Muster durch Klauseln in Switch-Blöcken. Darüber hinaus unterstützt die Laufzeitsemantik des Switch-Musters jetzt die Legacy-Switch-Semantik, wenn der Wert des Selektorausdrucks null ist.

    Die Innovation wird die Ausdruckskraft und Anwendbarkeit von Schalterausdrücken und -operatoren erweitern, indem sie die Anzeige von Mustern in Fallbeschriftungen ermöglicht. Es gibt Entwicklern außerdem die Möglichkeit, bei Bedarf die historische Feindseligkeit gegenüber Nullen und Switches zu lockern, die Sicherheit von Switch-Anweisungen zu verbessern und sicherzustellen, dass bestehende Switch-Anweisungen und -Anweisungen weiterhin unverändert kompiliert und mit identischer Semantik ausgeführt werden.

  • Vierte Inkubation der Vektor-API . Es wird Vektorberechnungen ausdrücken, die zur Laufzeit zuverlässig in optimale Vektoranweisungen auf unterstützten Prozessorarchitekturen kompiliert werden. Dies bietet eine bessere Leistung als entsprechende Skalarberechnungen. Entwickler, die die API verwenden, erhalten die Möglichkeit, mithilfe des Autovektorisierers von HotSpot komplexe Vektoralgorithmen in Java zu schreiben, jedoch mit einem benutzerdefinierten Modell, das die Vektorisierung vorhersehbarer und zuverlässiger macht. Die Vector API wurde zuvor in JDK 16, JDK 17 und JDK 19 inkubiert.

    Die Vector-API erweitert bitweise integrale lineare Operationen, einschließlich Operationen wie das Zählen der Anzahl der eigenen Bits, das Umkehren der Bitreihenfolge sowie das Komprimieren und Erweitern von Bits.

  • Der Linux/RISC-V-Java-Port erhält Hardware-Befehlssatzunterstützung, die bereits von einer Vielzahl von Sprach-Toolkits unterstützt wird. Der Linux/RISC-V-Port unterstützt jetzt die RV64GV RISC-V-Konfiguration, eine 64-Bit-Allzweck-ISA, die Vektoranweisungen enthält.

    Der Port unterstützt außerdem die folgenden HotSpot-Optionen für virtuelle Maschinen: Vorlageninterpreter, C1-JIT-Compiler (Client), C2-JIT-Compiler (Server) und alle aktuellen wichtigen Garbage Collectors, einschließlich ZGC und Shenandoah.

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