JavaRush /Blog Java /Random-PL /Przerwa kawowa #154. Trzy typy pętli w Javie. JDK 19: Now...

Przerwa kawowa #154. Trzy typy pętli w Javie. JDK 19: Nowe funkcje Java 19 pojawią się we wrześniu

Opublikowano w grupie Random-PL

Trzy typy pętli w Javie

Źródło: Medium Po przeczytaniu tego wpisu dowiesz się o różnych sposobach tworzenia pętli w Javie. Przerwa kawowa #154.  Trzy typy pętli w Javie.  JDK 19: Nowe funkcje Java 19 pojawią się 1 wrześniaPętla ma na celu wykonanie bloku kodu, dopóki warunek nie stanie się prawdziwy. W Javie istnieją trzy typy pętli:
  • chwila
  • zrobić podczas
  • Do

Podczas pętli

Pętla while jest powtarzana do momentu, aż określony warunek boolowski uzyska wartość true. Jak pokazano na poniższym diagramie, instrukcja będzie wykonywana do momentu, aż test warunku zwróci wartość true. Przerwa kawowa #154.  Trzy typy pętli w Javie.  JDK 19: Nowe funkcje Java 19 pojawią się we wrześniu – 2

Składnia

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

Przykład

Tutaj pętla while będzie wykonywana, dopóki warunek nie będzie spełniony dla x mniejszego niż 3.
public class WhileLoop {
     static int x = 1;
     public static void main(String[] args) {
         while(x < 3) {
             System.out.println("x = "+x);
             x++;
         }
     }
}
Wniosek:
x = 1 x = 2

pętla do-while

Pętla do-while jest podobna do pętli while z jedną małą różnicą. Pętla do-while zawsze jest uruchamiana raz przed sprawdzeniem warunku. Przerwa kawowa #154.  Trzy typy pętli w Javie.  JDK 19: Nowe funkcje Java 19 pojawią się we wrześniu – 3

Składnia

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

Przykład

W tym przykładzie widać, że instrukcja do lub blok kodu jest zawsze wykonywana raz przed sprawdzeniem, czy warunek jest prawdziwy, czy fałszywy.
static int x = 5;
        public static void main(String[] args) {
            do {
                System.out.println("x = "+x);
                x++;
            } while(x < 3);
        }
Wniosek
x = 5

dla pętli

Pętla for bardzo różni się od pętli while i do-while. W jednym wierszu instrukcji definiujemy inicjalizację, warunek (prawda lub fałsz), inkrementację/dekrementację. Przerwa kawowa #154.  Trzy typy pętli w Javie.  JDK 19: Nowe funkcje Java 19 pojawią się we wrześniu – 4

Składnia

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

Przykład

public static void main(String[] args) {
     for(int i = 0 ; i < 2 ; i++) {
         System.out.println("i = " + i);
     }
}
Wniosek:
i=0 i=1
Inicjalizacja: int i = 0 jest warunkiem inicjalizacji pętli. Warunek: sprawdza, czy warunek uruchomienia bloku lub kodu wewnątrz pętli for jest prawdziwy. Jeżeli warunek jest fałszywy, pętla zakończy się. Zwiększanie/zmniejszanie: aktualizacja zmiennej dla następnej iteracji.

Rozszerzona pętla for (dla każdego)

Istnieje inna wersja pętli for, która jest bardziej zwarta i czytelna niż zwykła pętla for. Nazywa się to rozszerzoną pętlą for (lub pętlą for-each) i służy do iteracji po kolekcjach i tablicach. Jest dostępny dla każdego obiektu, który implementuje interfejs Iterable.

Przykład

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

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

JDK 19: Nowe funkcje Java 19 pojawią się we wrześniu

Źródło: Infoworld Oto lista nowych funkcji, które pojawią się w nadchodzącej wersji JDK. Jego premiera zaplanowana jest na 20 września 2022 roku. Java Development Kit 19, wydanie krótkoterminowego wsparcia, które ma się ukazać we wrześniu, osiągnęło etap kandydata do wydania. Istnieje siedem funkcji, na które należy zwrócić uwagę: równoległość strukturalna, szablony rekordów, podgląd interfejsów API obcych i pamięci oraz obsługa architektury zestawu instrukcji Linux/RISC-V typu open source (ISA). Ponieważ nowe funkcje są już zamrożone dla JDK 19, inne planowane funkcje, takie jak funkcje generyczne i obiekty wartości, zostały przełożone na nowszą wersję platformy. Zazwyczaj nowa wersja Java jest wydawana co sześć miesięcy. Wersja kandydująca do wydania JDK 19 została opublikowana 11 sierpnia, po dwóch wydaniach w czerwcu i lipcu. Drugi kandydat do wydania spodziewany jest 25 sierpnia. Wczesne wersje JDK 19 można pobrać z jdk.java.net/19 . Funkcje JDK 19 obejmują:
  • Ustrukturyzowany równoległość (w fazie inkubacji). Został zaprojektowany w celu uproszczenia programowania wielowątkowego przy użyciu interfejsu API Structured Concurrency. Ta równoległość traktuje wiele zadań uruchomionych w różnych wątkach jako pojedynczą jednostkę pracy. W związku z tym uprości to obsługę i anulowanie błędów, a także poprawi niezawodność.

  • Podgląd szablonów rekordów (do analizowania wartości rekordów). Wzorce rekordów i wzorce typów można teraz zagnieżdżać, zapewniając deklaratywną, wydajną i dającą się komponować formę nawigacji i manipulacji danymi. Nowa funkcja obejmuje rozszerzenie dopasowywania wzorców w celu wyrażania bardziej złożonych zapytań o dane złożone bez zmiany składni i semantyki wzorców typów.

    Ta innowacja opiera się na dopasowywaniu wzorców wprowadzonym na przykład w JDK 16 w marcu 2021 r. Przyszłe wydania mogą wymagać rozszerzenia szablonów rekordów o funkcje takie jak szablony tablic i szablony vararg.

    Szablony postów są częścią projektu Amber , którego celem jest badanie i rozwijanie małych, zorientowanych na wydajność funkcji Java.

  • Podgląd wersji funkcji API obcych i pamięci . Nowa wersja wprowadzi interfejs API, który umożliwi programom Java interakcję z kodem i danymi poza środowiskiem wykonawczym Java. Dzięki wydajnemu wywoływaniu funkcji stron trzecich (tj. kodu poza maszyną JVM) i bezpiecznemu dostępowi do pamięci obcej (pamięci nie zarządzanej przez maszynę JVM), interfejs API umożliwi programom Java wywoływanie bibliotek natywnych i przetwarzanie natywnych danych bez wad technologii Java Interfejs natywny (JNI).

    Interfejsy API obcego i pamięci łączą dwa wcześniejsze interfejsy API inkubacji: interfejs API dostępu do pamięci zewnętrznej i interfejs API zewnętrznego linkera. Funkcja obca i interfejs API pamięci były wcześniej inkubowane w JDK 17 i ponownie inkubowane w JDK 18.

  • Podgląd wątków wirtualnych . Ta funkcja wprowadza lekkie wątki, które znacznie zmniejszają wysiłek związany z pisaniem, utrzymywaniem i monitorowaniem aplikacji równoległych o wysokiej wydajności. Celem innowacji jest zapewnienie możliwości skalowania aplikacji serwerowych napisanych w prostym stylu wątek na żądanie. Ta funkcja jest przeznaczona dla kodu korzystającego z interfejsu API wątków java.lang do wstrzykiwania wątków wirtualnych przy minimalnych zmianach oraz do rozwiązywania problemów, debugowania i profilowania wątków wirtualnych przy użyciu istniejących narzędzi JDK.

  • Trzeci podgląd dopasowywania wzorców dla wyrażeń i instrukcji switch. Rozszerza dopasowywanie wzorców na przełącznik, co umożliwi testowanie wyrażenia pod kątem wielu wzorców, z których każdy ma określony efekt, dzięki czemu złożone zapytania skoncentrowane na danych mogą być wyrażane zwięźle i bezpiecznie.

    Ta funkcja była wcześniej dostępna w JDK 17 i JDK 18. Trzecia wersja zapoznawcza dodaje ulepszenia, w tym zastąpienie wzorców chronionych kiedy klauzulami w blokach przełączników. Ponadto semantyka środowiska wykonawczego wzorca przełączania, gdy wartość wyrażenia selektora ma wartość null, obsługuje teraz starszą semantykę przełączania.

    Innowacja zwiększy wyrazistość i możliwość zastosowania wyrażeń i operatorów przełączników, umożliwiając pojawianie się wzorców w etykietach przypadków. Da to także programistom możliwość złagodzenia historycznej niechęci do wartości null i przełączników, jeśli zajdzie taka potrzeba, poprawi bezpieczeństwo instrukcji switch i zapewni, że istniejące instrukcje i instrukcje switch będą nadal kompilowane bez zmian i wykonywane z identyczną semantyką.

  • Czwarta inkubacja wektorowego API . Będzie wyrażać obliczenia wektorowe, które niezawodnie kompilują się w czasie wykonywania w optymalne instrukcje wektorowe na obsługiwanych architekturach procesorów. Zapewni to lepszą wydajność niż równoważne obliczenia skalarne. Programiści korzystający z interfejsu API zyskują możliwość pisania złożonych algorytmów wektorowych w Javie przy użyciu autowektoryzatora HotSpot, ale z niestandardowym modelem, który sprawia, że ​​wektoryzacja jest bardziej przewidywalna i niezawodna. Interfejs Vector API był wcześniej inkubowany w JDK 16, JDK 17 i JDK 19.

    Interfejs Vector API rozszerzy operacje liniowe z całką bitową, w tym operacje takie jak zliczanie liczby bitów, odwracanie kolejności bitów oraz kompresja i rozszerzanie bitów.

  • Port Java Linux/RISC-V zyska obsługę zestawu instrukcji sprzętowych, która jest już obsługiwana przez szeroką gamę zestawów narzędzi językowych. Port Linux/RISC-V będzie teraz obsługiwał konfigurację RV64GV RISC-V, 64-bitowy ISA ogólnego przeznaczenia, który zawiera instrukcje wektorowe.

    Port będzie także obsługiwał następujące opcje maszyn wirtualnych HotSpot: interpreter szablonów, kompilator C1 JIT (klient), kompilator C2 JIT (serwer) oraz wszystkie obecne główne moduły zbierające elementy bezużyteczne, w tym ZGC i Shenandoah.

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