JavaRush /Blog Java /Random-MS /Coffee break #132. Mari kita lihat ZGC, pemungut sampah t...

Coffee break #132. Mari kita lihat ZGC, pemungut sampah terbaharu di JDK. Apakah perbezaan antara HashMap, LinkedHashMap dan TreeMap di Jawa

Diterbitkan dalam kumpulan

Memperkenalkan ZGC, pemungut sampah terbaharu JDK

Sumber: Inside Java ZGC atau Z Garbage Collector ialah pengumpul sampah paling moden di JDK. Ia pada asalnya muncul dalam JDK 11 sebagai ciri percubaan. ZGC menjadi ciri pengeluaran dalam JDK 15 selepas peningkatan JEP 377 diluluskan. Dalam artikel ini, kita akan melihat matlamat dan masa depan ZGC. Coffee break #132.  Mari kita lihat ZGC, pemungut sampah terbaharu di JDK.  Apakah perbezaan antara HashMap, LinkedHashMap dan TreeMap dalam Java - 1

Kajian ZGC

ZGC direka bentuk untuk menjadi pengumpul sampah berskala dan kependaman rendah. Masa jeda maksimum semasa operasi ZGC jarang melebihi 250 mikrosaat. Ya, tepat mikrosaat, dengan purata masa jeda puluhan mikrosaat. ZGC sangat berskala, dengan saiz timbunan minimum antara 8 MB hingga 16 TB. Adalah penting untuk ambil perhatian bahawa masa jeda tidak meningkat dengan saiz timbunan. Oleh itu, walaupun dengan timbunan beberapa terabait dalam saiz, masa jeda masih akan diukur dalam mikrosaat. Walaupun ZGC menyediakan kependaman yang rendah dan kebolehskalaan yang tinggi, ia datang pada kos pemprosesan yang kira-kira 10% lebih rendah berbanding dengan G1. Pengurangan daya pengeluaran yang tepat bergantung pada reka bentuk aplikasi, seni bina sistem dan keperluan perniagaan.

Menggunakan ZGC

Memandangkan G1 ialah pemungut sampah lalai bermula dengan JDK 9, anda perlu menetapkan bendera VM -XX:+UseZGC untuk menggunakan ZGC. Apabila menggunakan ZGC, konfigurasi yang paling penting ialah menetapkan saiz timbunan maksimum, -Xmx. Saiz timbunan hendaklah cukup besar untuk mengendalikan set langsung aplikasi anda. Ia juga mesti mempunyai rizab tambahan untuk melaksanakan kutipan sampah. Lebih banyak ruang yang tersedia pada timbunan, semakin kurang kerap kutipan sampah diperlukan. Tetapi ambil perhatian bahawa ini mesti diseimbangkan dengan penggunaan memori.

Perkembangan lanjut ZGC

Sejak dikeluarkan sebagai ciri pengeluaran dalam JDK 15, ZGC terus dibangunkan secara aktif. Dengan keluaran JDK 16, ia memperkenalkan pemprosesan selari tindanan benang (JEP 376), dan JDK 18 menambah penyahduplikasi baris sebagai ciri tambahan. Pada masa hadapan, adalah dirancang bahawa ZGC akan menjadi berbilang generasi, walaupun jangka masa khusus untuk melaksanakan penambahbaikan ini masih belum ditetapkan.

Maklumat lanjut tentang ZDC

Apakah perbezaan antara HashMap, LinkedHashMap dan TreeMap di Jawa

Sumber: Rrtutors Jika anda ingin menyimpan pasangan nilai kunci dalam program Java, maka koleksi Java menawarkan banyak pilihan untuk ini bergantung pada keperluan anda. Ini termasuk LinkedHashmap , HashMap dan TreeMap . Perbezaan utama antara ketiga-tiga kelas ini terletak pada pelaksanaan dalaman mereka dan aplikasi khusus dalam kes tertentu. Coffee break #132.  Mari kita lihat ZGC, pemungut sampah terbaharu di JDK.  Apakah perbezaan antara HashMap, LinkedHashMap dan TreeMap dalam Java - 2

Perbezaan antara HashMap, LinkedHashMap dan TreeMap dalam Java

Berikut ialah perbezaan utama antara tiga kelas yang disebut berdasarkan pelaksanaan, penyusunan, pengisihan dan sokongan untuk kunci dan nilai nol.

Perlaksanaan

Kedua-dua HashMap dan LinkedHashMap melaksanakan antara muka Map , manakala TreeMap melaksanakan antara muka Map , NavigableMap dan vSortedMap. LinkedHashMap dilaksanakan sebagai baldi senarai berpaut dua, HashMap dilaksanakan sebagai jadual cincang, dan TreeMap dilaksanakan sebagai pepohon.

Menyusun dan menyusun

  • HashMap tidak memberi jaminan mengenai susunan lelaran. Walau bagaimanapun, ia boleh berubah sepenuhnya apabila elemen baharu ditambah.

  • LinkedHashMap akan berulang mengikut susunan entri diletakkan ke dalam peta.

  • TreeMap berulang mengikut "tertib semula jadi" kekunci mengikut kaedah compareTo() mereka (atau Comparator luaran). Ia juga melaksanakan antara muka SortedMap , yang mengandungi kaedah yang bergantung pada susunan isihan.

Kunci dan Nilai Null

HashMaps dan LinkedHashMap menyokong nilai nol serta nilai utama, manakala TreeMaps tidak menyokong nilai nol kerana ia menyokong jenis elemen semula jadi. Untuk contoh visual, mari buat HashMap , LinkedHashMap dan TreeMap .
import java.util.HashMap;

import java.util.LinkedHashMap;

import java.util.Map;

import java.util.TreeMap;

public class HashMap_LinkedHashMap_TreeMap {

            public static void main(String[] args) {

                  Map Treemapu = new TreeMap();

                  Treemapu.put("First", "Java");

                  Treemapu.put("Second", "Python");

                  System.out.println("TreeMap values are: \n" + Treemapu);

                  Map Hashimapu = new HashMap();

                  Hashimapu.put("First", "Java");

                  Hashimapu.put("Second", "Python");

                  System.out.println("HashMap Values are: \n" + Hashimapu);

                  Map LinkedHashiMapu = new LinkedHashMap();

                  LinkedHashiMapu.put("First", "Java");

                  LinkedHashiMapu.put("Second", "Python");

                  System.out.println("LinkedHashMap values are: \n" + LinkedHashiMapu);

            }

}
Pada output kita dapat:
{First=Java, Second=Python} Nilai HashMap ​​adalah: {Second=Python, First=Java} Nilai LinkedHashMap ​​adalah: {First=Java, Second=Python}
Oleh itu, ketiga-tiga kelas mewakili pemetaan daripada kunci unik kepada nilai dan oleh itu melaksanakan antara muka Peta .
  • HashMap ialah peta berdasarkan pencincangan utama. Ia menyokong operasi get/put O(1). Kunci mesti mempunyai pelaksanaan hashCode() dan equals() yang konsisten .

  • LinkedHashMap sangat serupa dengan HashMap , tetapi ia mempunyai susunan elemen yang ditambahkan (atau diakses), jadi susunan lelaran adalah sama dengan susunan peletakan (atau susunan akses, bergantung pada parameter reka bentuk).

  • TreeMap ialah pemetaan berasaskan pokok. Operasi meletakkan/mendapatkannya mengambil masa O(log n). Ini memerlukan elemen mempunyai beberapa jenis mekanisme perbandingan, sama ada dengan perbandingan atau pembanding. Urutan lelaran ditentukan oleh mekanisme ini.

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