জাভা বিকাশকারীকে সিস্টেম সংস্থানগুলি কার্যকরভাবে পরিচালনা করার জন্য একটি দুর্দান্ত কার্যকারিতা সরবরাহ করে। এমন পরিস্থিতিতে, ' চূড়ান্ত করা() ” পদ্ধতি কার্যকর হয় যা আবর্জনা সংগ্রহকারী একটি নির্দিষ্ট বস্তুর জন্য কার্যকর করার আগে সিস্টেম সংস্থানগুলিকে প্রকাশ করে। 'জাভা ভার্চুয়াল মেশিন (JVM)', যাইহোক, প্রতি অবজেক্টে একবার 'ফাইনালাইজ()' পদ্ধতি চালু করার অনুমতি দেয়।
এই ব্লগটি 'ফাইনালাইজ()' পদ্ধতি ব্যবহার এবং ওভাররাইড করার বিষয়ে আলোচনা করবে।
জাভা 'ফাইনালাইজ()' পদ্ধতি কি এবং কিভাবে এটি ওভাররাইড করবেন?
দ্য ' চূড়ান্ত করা() 'এর পদ্ধতি' অবজেক্ট পরিষ্কার করার কাজটি প্রয়োগ করার জন্য আবর্জনা সংগ্রহের জন্য উপযুক্ত বস্তুটি মুছে ফেলার ঠিক আগে 'গার্বেজ কালেক্টর' দ্বারা ক্লাসটি আহ্বান করা হয়।
বাক্য গঠন
সুরক্ষিত শূন্যতা চূড়ান্ত ( ) নিক্ষেপযোগ্য
এই সিনট্যাক্সে, ' সুরক্ষিত ” হল একটি অ্যাক্সেস স্পেসিফায়ার যা বোঝায় যে এই পদ্ধতিটি ক্লাসের মধ্যে অ্যাক্সেস করা যেতে পারে এবং শুধুমাত্র সেই ক্লাসের প্রাপ্ত ক্লাসে।
উদাহরণ 1: জাভাতে 'ফাইনালাইজ()' পদ্ধতি প্রয়োগ করা
এই উদাহরণটি 'ফাইনালাইজ()' পদ্ধতির ব্যবহারকে ব্যাখ্যা করে:
পাবলিক ক্লাস Finalize2 {সুরক্ষিত শূন্যতা চূড়ান্ত ( ) {
System.out.println ( 'এটি চূড়ান্ত করার পদ্ধতি!' ) ;
}
পাবলিক স্ট্যাটিক অকার্যকর প্রধান ( স্ট্রিং [ ] args ) {
Finalize2 অবজেক্ট = new Finalize2 ( ) ;
বস্তু = শূন্য;
সিস্টেম.জিসি ( ) ;
System.out.println ( 'আবর্জনা সংগ্রহকারীকে ডাকা হয়!' ) ;
} }
উপরের কোড লাইনে:
- প্রয়োগ করুন ' চূড়ান্ত করা() বিবৃত বিবৃতি সমন্বিত 'Finalize2' শ্রেণীর মধ্যে ' পদ্ধতি।
- ভিতরে ' প্রধান ', 'Finalize2()' কনস্ট্রাক্টরের মাধ্যমে একটি ক্লাস অবজেক্ট তৈরি করুন।
- এখন, একটি বস্তু বরাদ্দ করুন একটি ' খালি 'মান। এটি এমন যে যখন এটির একটি 'নাল' মান থাকে, সেখানে কোনও উল্লেখ থাকে না এবং তাই এটি আবর্জনা সংগ্রহের জন্য উপযুক্ত।
- এর পরে, প্রয়োগ করুন ' সিস্টেম.জিসি () আবর্জনা সংগ্রাহক চালানোর পদ্ধতি, যার ফলে 'ফাইনালাইজ()' পদ্ধতি বলা হয়।
আউটপুট
এখানে, এটি যাচাই করা যেতে পারে যে 'ফাইনালাইজ()' পদ্ধতিটি যথাযথভাবে চালু করা হয়েছে।
উদাহরণ 2: জাভা 'ফাইনালাইজ()' পদ্ধতিকে ওভাররাইড করা
দ্য ' অবজেক্ট ” ক্লাস সমস্ত জাভা ক্লাসের প্যারেন্ট ক্লাসের সাথে মিলে যায়। এই ক্লাসে উপস্থিত 'চূড়ান্তকরণ()' পদ্ধতির কোনো বাস্তবায়ন নেই। তবে শ্রেণি সংজ্ঞায় পরিষ্কার-পরিচ্ছন্নতা কার্যক্রম রয়েছে। অতএব, এই পদ্ধতিটি ওভাররাইড করার ফলে সংজ্ঞায়িত পরিচ্ছন্নতা কার্যক্রম সম্পাদন করা হয়:
পাবলিক ক্লাস চূড়ান্ত করা {সুরক্ষিত শূন্যতা চূড়ান্ত ( ) নিক্ষেপযোগ্য {
চেষ্টা করুন {
System.out.println ( 'ক্লাস চূড়ান্তকরণ() পদ্ধতি' ) ;
}
ধরা ( ছাড়া নিক্ষেপযোগ্য ) {
ছাড়া;
}
অবশেষে {
System.out.println ( 'অবজেক্ট ক্লাসের চূড়ান্তকরণ() পদ্ধতির আহ্বান করা হচ্ছে' ) ;
super.finalize ( ) ;
} }
পাবলিক স্ট্যাটিক অকার্যকর প্রধান ( স্ট্রিং [ ] args ) নিক্ষেপযোগ্য {
চূড়ান্ত করা obj = নতুন চূড়ান্ত করা ( ) ;
obj. চূড়ান্ত করা ( ) ;
} }
কোডের উপরের ব্লক অনুযায়ী:
- উল্লেখ ' চূড়ান্ত করা() 'পদ্ধতি এবং ঘোষণা করুন' নিক্ষেপযোগ্য ” ব্যতিক্রম, যথাক্রমে।
- মধ্যে ' চেষ্টা করুন ' ব্লক করুন, বিবৃত বিবৃতি নির্দিষ্ট করুন এবং 'এ ব্যতিক্রমটি মোকাবেলা করুন' ধরা 'ব্লক।
- মধ্যে ' অবশেষে 'ব্লক, ' সুপার ' কীওয়ার্ড অবজেক্ট ক্লাসের 'ফাইনালাইজ()' পদ্ধতির দিকে নির্দেশ করে। এটি এই নির্দিষ্ট ব্লকে প্রয়োগ করা হয় 'ফাইনালাইজ()' পদ্ধতির কার্যকরী নিশ্চিত করার জন্য, এমনকি যদি একটি ব্যতিক্রমের সম্মুখীন হয়।
- ভিতরে ' প্রধান ', একটি ক্লাস অবজেক্ট তৈরি করুন এবং 'ফাইনালাইজ' ক্লাসে নির্দিষ্ট/সংজ্ঞায়িত পদ্ধতির সাথে অবজেক্ট ক্লাসের 'ফাইনালাইজ()' পদ্ধতিকে ওভাররাইড করুন।
আউটপুট
এই ফলাফলে, এটি লক্ষ্য করা যেতে পারে যে 'ফাইনালাইজ()' পদ্ধতিটি সফলভাবে ওভাররাইড করা হয়েছে।
উপসংহার
দ্য ' চূড়ান্ত করা() বস্তুটি মুছে ফেলার আগে 'আবর্জনা সংগ্রাহক' পদ্ধতিটি ব্যবহার করে এবং এটি ব্যবহার করে ওভাররাইড করা যেতে পারে। সুপার ' কীওয়ার্ড। এই ব্লগটি জাভাতে 'ফাইনালাইজ()' পদ্ধতি ব্যবহার এবং ওভাররাইড করার বিষয়ে আলোচনা করেছে।