Pengumpulan Sampah di Jawa: Yang perlu anda ketahui



Artikel ini tentang pengumpulan sampah di Jawa memberi anda idea yang jelas tentang cara kerjanya, jenisnya, dan kaedah yang berbeza di bawah pengumpulan sampah di Jawa

adalah bahasa pengaturcaraan untuk tujuan umum dan jika sekiranya anda menghadapi situasi di mana terdapat data yang tidak digunakan dalam program anda dan anda tidak tahu bagaimana mengatasinya, Pengumpulan Sampah di Jawa sangat berguna. Oleh itu, saya menulis artikel ini untuk membantu anda menangani fungsi ini.

Saya akan membahas topik mengikut urutan berikut:





Mari kita mulakan!

Apa itu Pengumpulan Sampah di Jawa?

Di Jawa, pengaturcara menghadapi masalah harus memusnahkan benda yang tidak digunakan lagi. Tetapi dengan Pemungut Sampah, perkara ini dapat dijaga dengan mudah. Objektif utama Pemungut Sampah ini adalah untuk membebaskan memori timbunan dengan memusnahkan objek yang tidak mengandungi rujukan. Teknik ini dikenali sebagai Kutipan sampah.



Ia juga dianggap sebagai program yang membantu menjalankan pengurusan memori automatik. Bila dijalankan di JVM, objek dibuat di timbunan, yang sebenarnya merupakan bahagian memori yang dikhaskan untuk program. Akhirnya, beberapa objek tidak lagi diperlukan. The pengutip sampah menemui objek-objek yang tidak digunakan ini dan memadamkannya untuk membebaskan sedikit memori.

  • Program yang tidak mengalokasikan memori akhirnya boleh rosak apabila tidak ada memori yang tersisa di dalam sistem untuk diperuntukkan. Semua program ini dikatakan mengalami kebocoran memori.
  • Pengumpulan sampah di Jawa berlaku secara automatik sepanjang hayat program, menghilangkan keperluan untuk mengalihkan memori dan dengan itu mengelakkan kebocoran memori.
  • Kaedah seperti percuma () di C dan padam () dalam C ++ digunakan tetapi, di Java, ia dilakukan secara automatik. Jadi, memberikan pengurusan memori yang lebih baik.

Sekarang, mari kita fahami bagaimana pengumpulan sampah automatik ini berfungsi di Java.

Catatan : Objek dikatakan layak untuk pengumpulan sampah sekiranya tidak dapat dicapai.



Bagaimana Pengumpulan Sampah berfungsi?

Pengumpulan Sampah adalah proses bekerja dengan memori Heap dan juga tanda atau mengenal pasti objek yang tidak dapat dijangkau dan memusnahkannya dengan pemadatan.

Pengumpulan sampah di Java adalah proses automatik dan pengaturcara tidak perlu menandakan objek yang akan dihapus secara eksplisit. Pelaksanaannya terutama hidup di . Setiap JVM dapat melaksanakan pengumpulan sampah. Satu-satunya syarat adalah bahawa ia harus memenuhi spesifikasi JVM.

struktur data dan algoritma dalam tutorial java

Walaupun terdapat banyak JVM yang tersedia, Oracle HotSpot sejauh ini adalah yang paling biasa kerana ia menawarkan sekumpulan pilihan pengumpulan sampah yang kuat dan matang.

  • HotSpot mempunyai beberapa pengumpul sampah yang dioptimumkan untuk pelbagai kes penggunaan, dan semua pengumpul sampah mengikuti proses asas yang sama.
  • Pada langkah pertama, objek yang tidak dirujuk dikenal pasti dan ditandakan sebagai siap untuk pengumpulan sampah.
  • Pada langkah kedua, objek yang ditandakan akan dihapus. Secara pilihan, memori dapat dipadatkan setelah pengumpul sampah memadamkan objek, sehingga objek yang tersisa berada di blok bersebelahan di awal timbunan. Proses pemadatan menjadikannya lebih mudah untuk memperuntukkan memori ke objek baru secara berurutan setelah blok memori diperuntukkan ke objek yang ada.

Semua pengumpul sampah HotSpot menerapkan strategi pengumpulan generasi yang mengkategorikan objek mengikut usia. Rasional di sebalik pengumpulan sampah generasi adalah bahawa kebanyakan objek berumur pendek dan akan siap untuk pengumpulan sampah sejurus selepas penciptaan.

Sekarang mari kita lihat apa jenis pemungut sampah.

Jenis Pemungut Sampah

JVM menyediakan empat pengumpul sampah yang berbeza, semuanya adalah generasi. Masing-masing mempunyai kelebihan dan batasan tersendiri. Pilihan pemungut sampah mana yang digunakan terletak pada pengguna dan terdapat banyak perbezaan dalam jeda proses dan jeda aplikasi.

Terdapat iaitu 4 jenis pengutip sampah.

  • Pemungut Siri Bersiri (GC) :Semua acara pengumpulan sampah dilakukan secara bersiri dalam satu utas. Pemadatan dilaksanakan selepas setiap pengumpulan sampah.
  • GC selari / throughput: Banyak benang digunakan untuk pengumpulan sampah kecil / kecil. Satu utas digunakan untuk pengumpulan sampah utama dan pemadatan Generasi Lama. Juga, varian Parallel menggunakan beberapa utas untuk pengumpulan sampah utama dan pemadatan Generasi Lama.
  • Pemungut CMS :Banyak benang digunakan untuk pengumpulan sampah kecil / kecil menggunakan algoritma yang sama dengan Parallel. Sebilangan besar pengumpulan sampah adalah pelbagai utas, tetapi CMS berjalan bersamaan dengan proses aplikasi untuk meminimumkan kejadian aplikasi. Tiada pemadatan dilakukan.
  • Pemungut G1 :Pengutip sampah ini pada dasarnya dimaksudkan sebagai pengganti CMS. Ia selari dan serentak seperti CMS, tetapi ia berfungsi sangat berbeza jika dibandingkan dengan pengumpul sampah yang lebih tua.

Mari kita fahami kelebihan pengumpulan sampah di Jawa.

Kelebihan

  • Manfaat terbesar pengumpulan sampah Java adalah secara automatik menangani penghapusan objek yang tidak digunakan atau beberapa objek yang tidak dapat diakses untuk membebaskan sumber memori.
  • Koleksi Sampah kini menjadi komponen standard baru dari banyak bahasa pengaturcaraan yang popular.
  • Ia menjadikan memori Java cekap. Ini kerana pengumpul sampah membuang objek yang tidak dirujuk dari memori timbunan.
  • Ia adalah dilakukan secara automatik oleh pengutip sampah yang merupakan sebahagian daripada JVM.

Amalan terbaik

Pendekatan terbaik untuk menyesuaikan diri dengan pengumpulan sampah Java adalah dengan memasang bendera di JVM. Bendera mempunyai kemampuan untuk menyesuaikan pemungut sampah yang akan digunakan. Ia membantu menjadikannya paling sesuai untuk pemprosesan backend di mana jeda lama untuk pengumpulan sampah boleh diterima.

Perkara lain yang perlu diperhatikan di sini ialah, pengumpul sampah CMS direka untuk meminimumkan jeda yang menjadikannya sesuai untuk aplikasi GUI di mana responsif sangat penting. Penalaan tambahan dapat dicapai dengan mengubah ukuran timbunan atau bahagiannya dan mengukur kecekapan pengumpulan sampah.

Mari lihat program ini.

kelas Edureka {int a int b public void setData (int c, int d) {a = cb = d} public void showData () {System.out.println ('Nilai a =' + a) System.out.println ('Nilai b =' + b)} utama kekosongan statik awam (String args []) {Edureka e1 = Edureka baru () Edureka e2 = Edureka baru () e1.setData (1,2) e2.setData (3, 4) e1.showData () e2.showData () // Edureka e3 // e3 = e2 //e3.showData () // e2 = null //e3.showData () // e3 = null //e3.showData ()}}

Dalam kes ini, kedua-duanyaobjek dan dua pemboleh ubah rujukan dibuat. Sekiranya anda menambah arahan lain e3 = Null,dua pemboleh ubah rujukan akan menunjuk ke objek yang sama. Dan jika tidak ada rujukan ke pemboleh ubah, e3 = e2e3.showData () Pada ketika ini, tidak ada rujukan yang menunjuk ke objek dan ia layak untuk pengumpulan sampah.

cara membuka aws cli

Ini membawa kita ke akhir artikel ‘Koleksi Sampah di Jawa’ ini. Kami telah belajar bagaimana membuang objek yang tidak digunakan di timbunan dan pelbagai jenis koleksi.

Jika anda menemukan artikel ini tentang 'Pengumpulan Sampah di Jawa', periksa oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kami di sini untuk membantu anda dalam setiap langkah dalam perjalanan anda, kami menyediakan kurikulum yang dirancang untuk pelajar dan profesional yang ingin menjadi Pembangun Java.

Ada soalan untuk kami? Tolong sebutkan di bahagian komen dari “Koleksi Sampah di Jawa ini ' dan kami akan menghubungi anda secepat mungkin.