গার্বেজ কালেকশন (Garbage Collection) বা সংক্ষেপে GC হলো জাভায় মেমরি ম্যানেজমেন্ট-র কোর অংশ। এটি মেমরি থেকে ডেড অবজেক্ট ক্লিন করে সেই স্পেস রিক্লেইম করার জন্য দায়িত্বশীল। GC প্রি-ডিফাইনড গার্বেজ কলেক্টর (Garbage Collectors) ব্যবহার করে ক্লিনআপ এক্সিকিউট করে যা নির্দিষ্ট অ্যালগরিদম ব্যবহার করে।
নিচে কিছু গুরুত্বপূর্ণ গার্বেজ কলেক্টর টাইপ দেওয়া হলো:
- Serial GC: একটি সিঙ্গেল থ্রেড কলেক্টর এবং ছোট অ্যাপ্লিকেশন এবং ছোট ডেটা ব্যবহারের জন্য প্রযোজ্য। এটি কমান্ড-লাইন অপশন: -XX:+UseSerialGC দিয়ে ইনেবল করা যায়।
- Parallel GC: প্যারালেল GC গার্বেজ কলেক্টিং প্রসেস করতে একাধিক থ্রেড ব্যবহার করে, এবং এটিকে থ্রুপুট কলেক্টর ও বলা হয়। এটি এক্সপ্লিসিটলি অপশন: -XX:+UseParallelGC দিয়ে ইনেবল করা যায়।
- G1 Garbage First: G1 (Garbage First) হলো জাভা ৯-এ ডিফল্ট গার্বেজ কলেক্টর। এটি মাল্টি-প্রসেসর মেশিনে বড় মেমরি স্পেসে চলমান অ্যাপ্লিকেশনের জন্য ডিজাইন করা। এটি অপশন: -XX:+UseG1GC দিয়ে ইনেবল করা যায়।
- Concurrent Mark Sweep: অ্যাপ্লিকেশন পজ টাইম न्यূনতম রাখা হয়। এটি অপশন: -XX:+UseConcMarkSweepGC দিয়ে ব্যবহার করা হয়। জাভা ৯-এ এই GC টাইপ ডিপ্রিকেটেড (deprecated)।