যেহেতু জেভিএম কর্তৃক চূড়ান্তকরণ () পদ্ধতি আহ্বানের বিষয়ে একটি অনিশ্চয়তা রয়েছে (চূড়ান্তকরণ () যা ওভাররাইড করা হবে তা কার্যকর হবে কিনা তা নিশ্চিত নয়), অধ্যয়নের উদ্দেশ্যে চূড়ান্তকরণ () বলা হলে কী ঘটে তা পর্যবেক্ষণ করার আরও ভাল উপায় হ'ল কমান্ড দ্বারা জেভিএমকে জঞ্জাল সংগ্রহ কল করতে বাধ্য করুন System.gc()
।
বিশেষত, চূড়ান্তকরণ () বলা হয় যখন কোনও বস্তু আর ব্যবহারে না থাকে। কিন্তু আমরা যখন নতুন বস্তু তৈরি করে এটি কল করার চেষ্টা করি তখন এর কলটির কোনও নিশ্চিততা থাকে না। সুতরাং নিশ্চিতভাবে আমরা একটি null
অবজেক্ট তৈরি করি c
যার স্পষ্টতই কোনও ভবিষ্যতের ব্যবহার নেই, তাই আমরা বস্তুর c
চূড়ান্ত কলটি দেখতে পাই ।
উদাহরণ
class Car {
int maxspeed;
Car() {
maxspeed = 70;
}
protected void finalize() {
// Originally finalize method does nothing, but here we override finalize() saying it to print some stmt
// Calling of finalize is uncertain. Difficult to observe so we force JVM to call it by System.gc(); GarbageCollection
System.out.println("Called finalize method in class Car...");
}
}
class Bike {
int maxspeed;
Bike() {
maxspeed = 50;
}
protected void finalize() {
System.out.println("Called finalize method in class Bike...");
}
}
class Example {
public static void main(String args[]) {
Car c = new Car();
c = null; // if c weren`t null JVM wouldn't be certain it's cleared or not, null means has no future use or no longer in use hence clears it
Bike b = new Bike();
System.gc(); // should clear c, but not b
for (b.maxspeed = 1; b.maxspeed <= 70; b.maxspeed++) {
System.out.print("\t" + b.maxspeed);
if (b.maxspeed > 50) {
System.out.println("Over Speed. Pls slow down.");
}
}
}
}
আউটপুট
Called finalize method in class Car...
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51Over Speed. Pls slow down.
52Over Speed. Pls slow down.
53Over Speed. Pls slow down.
54Over Speed. Pls slow down.
55Over Speed. Pls slow down.
56Over Speed. Pls slow down.
57Over Speed. Pls slow down.
58Over Speed. Pls slow down.
59Over Speed. Pls slow down.
60Over Speed. Pls slow down.
61Over Speed. Pls slow down.
62Over Speed. Pls slow down.
63Over Speed. Pls slow down.
64Over Speed. Pls slow down.
65Over Speed. Pls slow down.
66Over Speed. Pls slow down.
67Over Speed. Pls slow down.
68Over Speed. Pls slow down.
69Over Speed. Pls slow down.
70Over Speed. Pls slow down.
দ্রষ্টব্য - 70০ অবধি প্রিন্ট করার পরেও এবং প্রোগ্রামের পরে কোন অবজেক্ট বি ব্যবহার করা হচ্ছে না, সেখানে অনিশ্চয়তা আছে যে খ "ক্লাস বাইকে চূড়ান্তকরণ পদ্ধতি ..." প্রবন্ধটি মুদ্রিত না হওয়ায় জেভিএম দ্বারা সাফ করা হয়েছে কিনা।