JavaRush /Java Blog /Random-ID /Rehat kopi #154. Tiga jenis loop di Java. JDK 19: Fitur J...

Rehat kopi #154. Tiga jenis loop di Java. JDK 19: Fitur Java 19 baru hadir pada bulan September

Dipublikasikan di grup Random-ID

Tiga Jenis Loop di Java

Sumber: Medium Setelah membaca postingan ini, Anda akan mempelajari berbagai cara perulangan di Java. Rehat kopi #154.  Tiga jenis loop di Java.  JDK 19: Fitur Java 19 baru hadir pada bulan September - 1Loop dirancang untuk mengeksekusi blok kode hingga suatu kondisi menjadi benar. Ada tiga jenis loop di Java:
  • ketika
  • lakukan sementara
  • untuk

Lingkaran sementara

Perulangan while berulang hingga kondisi Boolean yang ditentukan bernilai benar. Seperti yang ditunjukkan pada diagram di bawah, pernyataan akan dieksekusi hingga pengujian kondisi menghasilkan nilai true. Rehat kopi #154.  Tiga jenis loop di Java.  JDK 19: Fitur Java 19 baru hadir pada bulan September - 2

Sintaksis

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

Contoh

Di sini perulangan while akan dijalankan hingga kondisinya benar untuk x kurang dari 3.
public class WhileLoop {
     static int x = 1;
     public static void main(String[] args) {
         while(x < 3) {
             System.out.println("x = "+x);
             x++;
         }
     }
}
Kesimpulan:
x = 1 x = 2

perulangan do-sementara

Perulangan do- while mirip dengan perulangan while dengan satu perbedaan kecil. Perulangan do- while selalu berjalan satu kali sebelum menguji kondisi. Rehat kopi #154.  Tiga jenis loop di Java.  JDK 19: Fitur Java 19 baru hadir pada bulan September - 3

Sintaksis

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

Contoh

Dalam contoh ini, Anda dapat melihat bahwa pernyataan do atau blok kode selalu dieksekusi satu kali sebelum menguji apakah kondisinya benar atau salah.
static int x = 5;
        public static void main(String[] args) {
            do {
                System.out.println("x = "+x);
                x++;
            } while(x < 3);
        }
Kesimpulan
x = 5

untuk lingkaran

Perulangan for sangat berbeda dengan perulangan while dan do- while. Dalam satu baris pernyataan kita mendefinisikan inisialisasi, kondisi (benar atau salah), kenaikan/penurunan. Rehat kopi #154.  Tiga jenis loop di Java.  JDK 19: Fitur Java 19 baru hadir pada bulan September - 4

Sintaksis

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

Contoh

public static void main(String[] args) {
     for(int i = 0 ; i < 2 ; i++) {
         System.out.println("i = " + i);
     }
}
Kesimpulan:
saya=0 saya=1
Inisialisasi: int i = 0 adalah kondisi inisialisasi loop. Kondisi: Memeriksa apakah kondisi untuk menjalankan blok atau kode di dalam perulangan for benar. Jika kondisinya salah maka perulangan akan berakhir. Kenaikan/penurunan: perbarui variabel untuk iterasi berikutnya.

Perulangan for yang diperluas (untuk masing-masing)

Ada versi lain dari perulangan for yang lebih ringkas dan mudah dibaca daripada perulangan for sederhana. Ini disebut perulangan for yang diperluas (atau perulangan untuk setiap) dan digunakan untuk melakukan perulangan melalui koleksi dan array. Ini tersedia untuk objek apa pun yang mengimplementasikan antarmuka Iterable.

Contoh

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

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

JDK 19: Fitur Java 19 baru hadir pada bulan September

Sumber: Infoworld Berikut daftar fitur baru yang akan muncul pada rilis JDK mendatang. Rilisnya dijadwalkan pada 20 September 2022. Java Development Kit 19, rilis dukungan jangka pendek yang dijadwalkan pada bulan September, telah mencapai tahap kandidat rilis. Ada tujuh fitur yang harus diwaspadai: paralelisme terstruktur, templat rekaman, pratinjau API asing dan memori, dan dukungan untuk arsitektur set instruksi (ISA) Linux/RISC-V sumber terbuka. Karena fitur-fitur baru telah dibekukan untuk JDK 19, fitur-fitur lain yang direncanakan, seperti generik dan objek nilai, ditangguhkan ke versi platform yang lebih baru. Biasanya versi baru Java dirilis setiap enam bulan. Kandidat rilis JDK 19 diterbitkan pada 11 Agustus, setelah dua rilis rampdown pada bulan Juni dan Juli. Kandidat rilis kedua diharapkan pada 25 Agustus. Versi awal JDK 19 dapat diunduh dari jdk.java.net/19 . Fitur JDK 19 meliputi:
  • Paralelisme terstruktur (selama fase inkubasi). Ini dirancang untuk menyederhanakan pemrograman multi-thread menggunakan API Konkurensi Terstruktur. Paralelisme ini memperlakukan banyak tugas yang berjalan pada thread berbeda sebagai satu unit kerja. Oleh karena itu, hal ini akan menyederhanakan penanganan kesalahan dan pembatalan, dan keandalan juga akan ditingkatkan.

  • Pratinjau templat rekaman (untuk mengurai nilai rekaman). Pola rekaman dan pola tipe kini dapat disarangkan, menyediakan bentuk navigasi dan manipulasi data yang deklaratif, kuat, dan dapat disusun. Fitur baru ini mencakup perluasan pencocokan pola untuk mengekspresikan kueri data gabungan yang lebih kompleks tanpa mengubah sintaksis atau semantik pola tipe.

    Inovasi ini dibangun berdasarkan pencocokan pola misalnya yang diperkenalkan di JDK 16 pada Maret 2021. Rilis mendatang mungkin mengharuskan templat rekaman diperluas dengan fitur seperti templat array dan templat vararg.

    Templat postingan adalah bagian dari proyek Amber , yang bertujuan untuk mengeksplorasi dan mengembangkan fitur Java kecil yang berorientasi pada kinerja.

  • Pratinjau versi fungsi API asing dan memori . Rilis baru ini akan memperkenalkan API yang memungkinkan program Java berinteraksi dengan kode dan data di luar runtime Java. Dengan memanggil fungsi pihak ketiga secara efisien (yaitu, kode di luar JVM) dan mengakses memori asing dengan aman (memori tidak dikelola oleh JVM), API akan memungkinkan program Java memanggil perpustakaan asli dan memproses data asli tanpa kelemahan Java Antarmuka Asli (JNI).

    API asing dan memori menggabungkan dua API inkubasi sebelumnya: API akses memori eksternal dan API linker eksternal. Fungsi asing dan API memori sebelumnya diinkubasi di JDK 17 dan diinkubasi ulang di JDK 18.

  • Pratinjau thread Virtual. Fitur ini memperkenalkan thread ringan yang sangat mengurangi upaya penulisan, pemeliharaan, dan pemantauan aplikasi paralel berkinerja tinggi. Tujuan dari inovasi ini adalah untuk memberikan kemampuan untuk menskalakan aplikasi server yang ditulis dengan gaya thread-per-request yang sederhana. Fitur ini menargetkan kode yang menggunakan Java.lang Thread API untuk memasukkan thread virtual dengan perubahan minimal, dan untuk memecahkan masalah, men-debug, dan membuat profil thread virtual menggunakan alat JDK yang ada.

  • Pratinjau ketiga pencocokan pola untuk ekspresi dan pernyataan saklar. Ini memperluas pencocokan pola ke peralihan, yang memungkinkan ekspresi diuji terhadap sejumlah pola, masing-masing dengan efek spesifik, sehingga kueri berpusat pada data yang kompleks dapat diekspresikan secara ringkas dan aman.

    Fitur ini sebelumnya dipratinjau di JDK 17 dan JDK 18. Pratinjau ketiga menambahkan peningkatan, termasuk mengganti pola yang dilindungi ketika dengan klausa di blok sakelar. Selain itu, semantik runtime pola peralihan ketika nilai ekspresi pemilih adalah null kini mendukung semantik peralihan lama.

    Inovasi ini akan memperluas ekspresi dan penerapan ekspresi saklar dan operator dengan memungkinkan pola muncul dalam label kasus. Hal ini juga akan memberikan pengembang kemampuan untuk meredakan permusuhan historis terhadap null dan switch bila diperlukan, meningkatkan keamanan pernyataan switch, dan memastikan bahwa pernyataan switch dan pernyataan yang ada terus dikompilasi tanpa perubahan dan dieksekusi dengan semantik yang identik.

  • Inkubasi keempat API vektor . Ini akan mengekspresikan komputasi vektor yang dapat dikompilasi secara andal saat runtime menjadi instruksi vektor optimal pada arsitektur prosesor yang didukung. Ini akan memberikan kinerja yang lebih baik dibandingkan perhitungan skalar yang setara. Pengembang yang menggunakan API memperoleh kemampuan untuk menulis algoritma vektor kompleks di Java menggunakan autovectorizer HotSpot, namun dengan model khusus yang membuat vektorisasi lebih dapat diprediksi dan diandalkan. Vector API sebelumnya diinkubasi di JDK 16, JDK 17, dan JDK 19.

    Vector API akan memperluas operasi linier integral bitwise, termasuk operasi seperti menghitung jumlah bit, membalikkan urutan bit, dan mengompresi serta memperluas bit.

  • Port Java Linux/RISC-V akan mendapatkan dukungan set instruksi perangkat keras yang sudah didukung oleh berbagai perangkat bahasa. Port Linux/RISC-V sekarang akan mendukung konfigurasi RV64GV RISC-V, ISA tujuan umum 64-bit yang mencakup instruksi vektor.

    Port ini juga akan mendukung opsi mesin virtual HotSpot berikut: penerjemah templat, kompiler C1 JIT (klien), kompiler C2 JIT (server), dan semua pengumpul sampah utama saat ini, termasuk ZGC dan Shenandoah.

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