Java adalah memiliki fitur automatic garbage collection? wah apaan tuh?


#FaktaJava

salah satu kelebihan java adalah memiliki feature automatic garbage collection? wah apaan tuh?

#BahasaAwam
kalo dijelaskan secara awam, kurang lebih seperti ini. jika aplikasi kita diibaratkan sebuah rumah, maka pasti didalamnya ada tempat sampah. automatic garbace collection itu artinya, secara otomatis sampah2 yang ada di dalam rumah akan dimasukkan ke tong sampah, tanpa kita melakukannya sendiri (manual), dan yang paling keren, automatic GC itu secara otomatis akan menghilangkan sapah yang ada, hilang, tanpa tersisa sedikitpun.

#BahasaTeknis
JVM adalah sistem yang pintar, dimana dia bisa mendeteksi apakah ada objek yang masih digunakan atau tidak, seandainya ada objek yang sudah tidak digunakan lagi, maka otomatis objek tersebut akan dihapus dari memori secara otomatis, kita tidak perlu menghilangkan objek itu secara manual seperti ti C/C++, di JVM semuanya otomatis.

#KapanGCTerjadi
garbage collection akan terjadi ketika aplikasi sudah menyentuh batas maksimal memori, seandainya aplikasi kita set batas maksimal memorinya adalah 500MB, maka saat aplikasi kita menggunakan memori menyentuh 500MB maka otomatis GC akan berjalan, menghapus seluruh objek yang tidak dibutuhkan dari memori, sehingga penggunaan memori lebih efektik

#OutOfMemoryError
seandainya aplikasi kita sudah mencapat batas maksimal memori, lalu GC akan menghapus objek yang tidak diperlukan. Namun kadang ada kejadian tidak ada objek yang tidak terpakai, dengan kata lain tidak ada yang bisa dihapus lagi, pada saat ini, JVM akan menyatakan error OutOfMemoryError, artinya tidak ada memori yang bisa digunakan untuk objek baru. Jika ini terjadi, hal yang bisa dilakukan hanyalah menaikkan kapasitas memori.