সাথে কাজ করার সময় জাভা মধ্যে ক্লাস কনস্ট্রাক্টরগুলি ক্লাসের উদাহরণটি আরম্ভ করার জন্য ব্যবহৃত হয়। মেমরিটি ব্যবহার করে বস্তুর জন্য বরাদ্দ করা হয় নির্মাতা তবে অবজেক্টের লাইফ-চক্র শেষ হয়ে গেলে এবং অবজেক্টটি আর ব্যবহারে না আসার পরে, মেমরিটি ডিলেলকেটেড এবং ছেড়ে দিতে হয়। এখানেই ধ্বংসকারী ছবিতে আসে। এই নিবন্ধে, আমরা নিম্নলিখিত ক্রমে জাভাতে ধ্বংসকারীদের সম্পর্কে শিখব:
ডেস্ট্রাক্টর কী?
একজন ডেস্ট্রাক্টর বিশেষ is যা কোনও বস্তুর জীবনচক্র সমাপ্ত হওয়ার সাথে সাথে স্বয়ংক্রিয়ভাবে কল হয়ে যায়। একজন ডেস্ট্রাক্টরকে ডি-বরাদ্দ এবং মেমরি মুক্ত করার জন্য ডাকা হয়। যখন কোনও ডেস্ট্রাক্টর ডাকা হয় তখন নিম্নলিখিত কার্যগুলি সম্পাদন করা হয়।
- রিলিজের লকগুলি প্রকাশ করা
- সমস্ত ডাটাবেস সংযোগ বা ফাইল বন্ধ করা হচ্ছে
- সমস্ত নেটওয়ার্ক সংস্থান প্রকাশ করা
- অন্যান্য গৃহকর্মের কাজ
- কোনও বস্তুর জীবদ্দশায় বরাদ্দ করা হিপ স্থান পুনরুদ্ধার
চূড়ান্তকরণকারী হিসাবে পরিচিত জাভাতে বিপর্যয়কারীরা হ'ল অ-প্রতিরোধমূলক। বরাদ্দকরণ এবং মেমরির প্রকাশের দ্বারা স্পষ্টভাবে পরিচালিত হয় জাভা মধ্যে আবর্জনা সংগ্রাহক ।
সি # ফাইনালাইজারদের বিপরীতে যা। নেট রান-সময় চলাকালীন অনুরোধ করে, জাভাতে ফাইনালাইজারদের স্পষ্টতই আহ্বান জানানো উচিত their
আসুন আমরা একটি ধ্বংসকারীর মূল বৈশিষ্ট্যগুলি একবার দেখে নিই:
- ওভারলোডিং বা উত্তরাধিকার অনুমোদিত নয়
- অ্যাক্সেস পরিবর্তক বা পরামিতিগুলির কোনও স্পেসিফিকেশন নেই
- স্বয়ংক্রিয় অনুরোধ এবং ব্যবহারকারীর কাছ থেকে কোনও সুস্পষ্ট কল
- ক্লাসে ব্যবহৃত হয় তবে স্ট্রাকচারে নয়
- শ্রেণীর ক্রম সর্বাধিক উত্স প্রাপ্ত শ্রেণি থেকে ন্যূনতম উত্পন্ন শ্রেণিতে পরিবর্তিত হয়
- যখন বস্তুর উদাহরণটি আর অ্যাক্সেসের জন্য যোগ্য না হয় তখনও ডাকা হয়
- অবজেক্টের দ্বারা পরিচালিত পরিচালিত সংস্থানগুলির পরিবর্তে অ-পরিচালিত সংস্থানগুলি ছাড়ার জন্য ব্যবহৃত হয়
আবর্জনা সংগ্রহকারী
একটি আবর্জনা সংগ্রহকারী একটি প্রোগ্রাম যা চলমান জাভা ভার্চুয়াল মেশিন আর ব্যবহার্য নয় বা তাদের জীবনচক্র সমাপ্ত করে এমন বস্তুগুলি মুছে ফেলে স্মৃতি পুনরুদ্ধার করতে। কোনও বস্তু আবর্জনা সংগ্রহের জন্য যোগ্য বলে মনে করা হয় যদি এবং কেবল যদি বস্তুটি অ্যাক্সেসযোগ্য হয়।
কেন আমি স্কিল শিখতে হবে
জাভাতে আবর্জনা সংগ্রহ কীভাবে কাজ করে তা বোঝার চেষ্টা করা যাক:
আবর্জনা সংগ্রহ মূলত অ্যাক্সেসযোগ্য অবজেক্টগুলিকে চিহ্নিতকরণ বা চিহ্নিতকরণ এবং স্মৃতি মুক্ত করার জন্য এগুলি মুছে ফেলার প্রক্রিয়া। বাস্তবায়নটি জেভিএমে বাস করে, একমাত্র প্রয়োজনীয়তা হল এটি জেভিএমের নির্দিষ্টকরণগুলি পূরণ করে। এগুলি জাভাতে বিভিন্ন ধরণের আবর্জনা সংগ্রহকারী:
- সিরিয়াল আবর্জনা সংগ্রহকারী
- সমান্তরাল / থ্রুপুট আবর্জনা সংগ্রহকারী
- সিএমএস কালেক্টর
- জি 1 সংগ্রাহক
আসুন জাভাতে আবর্জনা সংগ্রহের কয়েকটি সুবিধা একবার দেখে নেওয়া যাক:
- এটি স্বয়ংক্রিয়ভাবে অযথা অবজেক্টগুলি মুছে ফেলা যায় যা মেমরিটি মুক্ত করতে পারা যায় না
- আবর্জনা সংগ্রহ জাভা স্মৃতিশক্তিকে দক্ষ করে তোলে
- এটি কার্যকরভাবে জবাবদিহি করার দরকার নেই যেহেতু বাস্তবায়নটি জেভিএম-এ থাকে
- আবর্জনা সংগ্রহ বহু প্রোগ্রামিং ভাষার একটি গুরুত্বপূর্ণ এবং মানক উপাদান হয়ে উঠেছে
জাভাতে কেন ধ্বংসকারীদের ব্যবহার করা হয় না তা বোঝার চেষ্টা করা যাক।
অবশেষে এবং জাভা চূড়ান্ত
কনস্ট্রাক্টর বনাম ডিস্ট্রাক্টর: একজন কনস্ট্রাক্টর এবং ডেস্ট্রাক্টরের মধ্যে পার্থক্য
নির্মাতা | ধ্বংসকারী |
কোনও বর্গের উদাহরণ শুরু করার জন্য একটি কনস্ট্রাক্টর ব্যবহার করা হয় | কোনও ডেস্ট্রাক্টর যখন বস্তুগুলি আর ব্যবহারে না থাকে তখন মুছতে বা ধ্বংস করতে ব্যবহৃত হয় |
কোনও শ্রেণীর উদাহরণ তৈরি হলে কনস্ট্রাক্টরদের ডাকা হয় | যখন কোনও বস্তু ধ্বংস হয় বা মুক্তি পায় তখন ধ্বংসকারীদের ডাকা হয় |
মেমরি বরাদ্দ | স্মৃতি প্রকাশ করে |
ওভারলোডিং সম্ভব | ওভারলোডিং অনুমোদিত নয় |
তাদের তর্ক করার অনুমতি রয়েছে | কোনও বিতর্ককারীকে কোনও যুক্তি দেওয়া যায় না |
জাভা ফাইনালাইজ () পদ্ধতি
কোনও বিকাশকারীকে জঞ্জাল সংগ্রহকারীকে কার্যকর করার জন্য বাধ্য করা মোটামুটি কঠিন হয়ে পড়ে, তবে এর বিকল্প রয়েছে। আমরা অবজেক্টটি ব্যবহার করতে পারি। চূড়ান্ত করা () পদ্ধতি যা জাভাতে এক ধ্বংসকারীর মতো কাজ করে।
অজগর ফর্ম্যাট কি
একটি অবজেক্ট.ফাইনালাইজ () পদ্ধতি সকলের মধ্যে উত্তরাধিকার সূত্রে প্রাপ্ত জাভা অবজেক্টস । এটি কোনও ডেস্ট্রাক্টর নয় তবে প্রোগ্রামটি বন্ধ হওয়ার আগে ফাইলটি বন্ধ করা ইত্যাদির মতো বাহ্যিক সংস্থার ব্যবহার নিশ্চিত করতে বা অতিরিক্ত সুরক্ষা সরবরাহ করতে ব্যবহৃত হয়। আপনি নিজেই পদ্ধতিটি বা system.runFinalizerOnExit (সত্য) ব্যবহার করে এটি কল করতে পারেন।
চূড়ান্তকরণ () পদ্ধতির ব্যবহার অত্যধিক সুপারিশ করা হয় না কারণ এটি খুব অনিরাপদ হতে পারে এবং কিছু ক্ষেত্রে ভুলভাবে ব্যবহার করা যেতে পারে।
চূড়ান্তকরণ () কীভাবে আবর্জনা সংগ্রহকারীকে কল করতে ব্যবহার করা যেতে পারে তা দেখানোর জন্য আসুন একটি সাধারণ উদাহরণ গ্রহণ করি।
পাবলিক ক্লাস এ {পাবলিক অকার্যকর চূড়ান্তকরণ () থ্রোয়েবল {System.out.println ('আবর্জনা সংগ্রাহক দ্বারা বস্তুটি নষ্ট হয়ে গেছে')} পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আর্কস) {একটি পরীক্ষা = নতুন এ () পরীক্ষা = নাল System.gc ()}}
এটি আমাদের এই নিবন্ধের শেষে নিয়ে আসে যেখানে আমরা জাভায় ধ্বংসকারী সম্পর্কে শিখেছি। আমি আশা করি এই টিউটোরিয়ালে আপনার সাথে যা ভাগ করা হয়েছে তার সাথে আপনি পরিষ্কার হয়ে গেছেন।
যদি আপনি 'জাভাতে ধ্বংসকারী' সম্পর্কিত এই নিবন্ধটি প্রাসঙ্গিকভাবে খুঁজে পেয়েছেন তবে এটি দেখুন বিশ্বজুড়ে ছড়িয়ে থাকা 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা।
আমরা আপনার যাত্রার প্রতিটি পদক্ষেপে আপনাকে সহায়তা করতে এবং জাভা বিকাশকারী হতে চান এমন শিক্ষার্থী এবং পেশাদারদের জন্য তৈরি একটি পাঠ্যক্রম নিয়ে হাজির। কোর্সটি আপনাকে জাভা প্রোগ্রামিংয়ে একটি প্রধান সূচনা দেওয়ার জন্য এবং বিভিন্ন এবং উভয় মূল এবং উন্নত জাভা ধারণার জন্য আপনাকে প্রশিক্ষণের জন্য ডিজাইন করা হয়েছে পছন্দ হাইবারনেট & ।
যদি আপনার কোনও প্রশ্ন আসে তবে নির্দ্বিধায় আপনার সমস্ত প্রশ্ন 'জাভায় ধ্বংসকারী' এর মন্তব্য বিভাগে জিজ্ঞাসা করুন এবং আমাদের দলটি উত্তর দিতে পেরে খুশি হবে।