জাভায় ক্ষণস্থায়ী: কী, কেন এবং কীভাবে এটি কাজ করে?



জাভাতে ক্ষণস্থায়ী একটি কীওয়ার্ড যা সিরিয়ালাইজেশনে ব্যবহৃত হয়। আপনি যখন কোনও ফাইলের ভেরিয়েবলের মান সংরক্ষণ করতে চান না তখন এটি ব্যবহৃত হয়

জাভাতে ক্ষণস্থায়ীটি বাইটের স্ট্রিমগুলিতে অবিচল থাকা অবস্থায় ক্রিয়াকলাপ না হওয়ার জন্য সদস্যের পরিবর্তনশীলটিকে চিহ্নিত করতে ব্যবহৃত হয়। এই কীওয়ার্ডটি সুরক্ষার সীমাবদ্ধতাগুলি পূরণ করতে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে । এটি ক এর মূল মানটিকে উপেক্ষা করে পরিবর্তনশীল এবং সেই ভেরিয়েবলের ডিফল্ট মান সংরক্ষণ করে ।

নিম্নলিখিত এই নিবন্ধে আলোচনা করা হবে যে বিষয়গুলি নিম্নলিখিত:





চল শুরু করি!

জাভাতে ট্রান্সিয়েন্ট কীওয়ার্ড কী?

ক্ষণস্থায়ী হ'ল মূলত একটি ভেরিয়েবল সংশোধক যা সিরিয়ালের জন্য ব্যবহৃত হয়। এখন, সিরিয়ালাইজেশন কী? জাভাতে সিরিয়ালাইজেশন এমন একটি প্রক্রিয়া যা কোনও বস্তুর অবস্থাকে বাইট স্ট্রিমে রূপান্তর করতে ব্যবহৃত হয়। সিরিয়ালাইজেশনের সময় আপনি যদি কোনও ফাইলের মধ্যে একটি নির্দিষ্ট ভেরিয়েবলের মান সংরক্ষণ করতে না চান, তবে ক্ষণস্থায়ী কীওয়ার্ডটি ব্যবহার করুন।



বাক্য গঠন :

ব্যক্তিগত ক্ষণস্থায়ী

বা

ক্ষণস্থায়ী বেসরকারী

আপনি যদি কোনও ডেটা সদস্যকে ক্ষণস্থায়ী হিসাবে সংজ্ঞায়িত করেন তবে এটি ক্রমিকায়িত হবে না। এটি কারণ প্রতিটি ক্ষেত্র হিসাবে চিহ্নিত ক্ষণস্থায়ী সিরিয়াল করা হবে না। জাভা ভার্চুয়াল মেশিন (JVM) নির্দেশ করতে আপনি এই ক্ষণস্থায়ী কীওয়ার্ডটি ব্যবহার করতে পারেন যে ক্ষণস্থায়ী পরিবর্তনশীল কোনও বস্তুর স্থির অবস্থার অংশ নয়।



আসুন জাভাতে ট্রান্সিয়েন্ট সম্পর্কে বুঝতে একটি খুব প্রাথমিক উদাহরণ লিখি।

পিএইচপি পার্স স্ট্রিং অ্যারে
শ্রেণি ডেমো সিরিয়ালাইজেবল কার্যকর করে {// মানব ক্ষণস্থায়ী বেসরকারী ক্ষণস্থায়ী তৈরি স্ট্রিং মানব ক্ষণস্থায়ী প্রান্ত বয়স // অন্যান্য ক্ষেত্রগুলিকে ব্যক্তিগতভাবে ক্রমিক করুন স্ট্রিংয়ের নাম, ঠিকানার তারিখ ডোব // কোডের বাকী অংশ}

এখানে আমি ডেমো নামে একটি শ্রেণি তৈরি করেছি যা সিরিয়ালাইজেবল কার্যকর করে। ডেমো শ্রেণীর বয়সের ডেটা সদস্যকে ক্ষণস্থায়ী হিসাবে ঘোষণা করা হয়, এর মানটি সিরিয়ালযুক্ত হবে না। তবে আপনি যদি অবজেক্টটিকে ডিসরিয়ালাইজ করেন, আপনি একটি ক্ষণস্থায়ী ভেরিয়েবলের জন্য ডিফল্ট মান পাবেন।

ক্ষণস্থায়ী সংশোধক কেন ব্যবহার করা হয়?

জাভাতে ক্ষণস্থায়ী একটি ক্ষেত্র ক্রমিকায়ন প্রক্রিয়ার অংশ হওয়া উচিত নয় তা বোঝাতে ব্যবহৃত হয়।

এই সদস্য ভেরিয়েবলগুলিতে সিরিয়ালাইজেশন বন্ধ করতে কোনও শ্রেণীর সদস্য ভেরিয়েবলগুলিতে মডিফায়ার ট্রান্সিয়েন্ট প্রয়োগ করা যেতে পারে। ক্ষণস্থায়ী হিসাবে চিহ্নিত প্রতিটি ক্ষেত্র ক্রমিক হবে না। আপনি এই সংক্ষিপ্ত শব্দটি ব্যবহার করতে পারেন নির্দেশ করতে জাভা ভার্চুয়াল মেশিন ক্ষণস্থায়ী পরিবর্তনশীল কোনও বস্তুর স্থির অবস্থার অংশ নয়।

আপনার এই প্রশ্নটি আপনার মাথায় চলছে। জাভাতে এই ক্ষণস্থায়ীটি কখন ব্যবহার করবেন?

এর উত্তর হবে:

  1. ক্লাসের উদাহরণের মধ্যে অন্য ক্ষেত্রগুলি থেকে উত্পন্ন / গণনা করা ক্ষেত্রগুলি থাকলে আপনি এই ক্ষণস্থায়ী কীওয়ার্ডটি ব্যবহার করতে পারেন।
  2. জেডিকে বা অ্যাপ্লিকেশন কোডের অভ্যন্তরে 'সিরিয়ালাইজযোগ্য' হিসাবে চিহ্নিত নয় এমন ক্ষেত্রগুলির সাথে এটি ব্যবহার করুন। এটি কারণ কারণ যে সিরিয়ালগুলি সিরিয়ালাইজেবল ইন্টারফেস বাস্তবায়িত করে না সেগুলি কোনও সিরিয়ালাইজযোগ্য শ্রেণীর মধ্যে উল্লেখ করা হয় এবং সিরিয়ালায়িত করা যায় না এবং 'java.io.NotSerializableException' ব্যতিক্রম ছুঁড়ে দেয়। নোট করুন যে এই অ-সিরিয়ালীকরণযোগ্য উল্লেখগুলি আগে 'ক্ষণস্থায়ী' হিসাবে চিহ্নিত করা উচিত মূল শ্রেণি সিরিয়ালিং।

চূড়ান্ত কীওয়ার্ড সহ ট্রান্সিয়েন্ট কীভাবে ব্যবহার করবেন?

জাভাতে ক্ষণস্থায়ী সাথে ব্যবহার করা যেতে পারে চূড়ান্ত কীওয়ার্ড কারণ এটি বিভিন্ন পরিস্থিতিতে ভিন্নভাবে আচরণ করে যা অন্যের ক্ষেত্রে সাধারণত হয় না জাভাতে কীওয়ার্ড

এই উদাহরণটি দেখুন।

জাভাতে টস্ট্রিং কী করে?
প্রাইভেট স্ট্রিং ফার্স্টনেম স্ট্রিং লাস্টনেম // চূড়ান্ত ক্ষেত্র 1 জনসাধারণের চূড়ান্ত ক্ষণস্থায়ী স্ট্রিং পাস = 'পাসওয়ার্ড' // চূড়ান্ত ক্ষেত্র 2 পাবলিক চূড়ান্ত ক্ষণস্থায়ী লক লক = লক.জেটলক ('ডেমো')

এখন যখন আপনি আবার সিরিয়ালাইজেশন চালান (লিখুন / পড়ুন), আপনি এই আউটপুটটি পাবেন:

কেনি
শক্তিশালী
পাসওয়ার্ড
শূন্য

এটি কারণ আমরা ক্ষণস্থায়ীকে 'পাস' চিহ্নিত করেছি এবং এখনও সেই ক্ষেত্রটি সিরিয়ালযুক্ত হয়েছিল। অনুরূপ ঘোষণার জন্য, লকটি সিরিয়ালযুক্ত হয়নি। কারণটি হ'ল যখনই কোনও চূড়ান্ত ক্ষেত্রকে ধ্রুবক প্রকাশ হিসাবে মূল্যায়ন করা হয়,এটি অস্থায়ী কীওয়ার্ডের উপস্থিতি উপেক্ষা করে জেভিএম সিরিয়ালাইজড।

ক্ষণস্থায়ী এবং উদ্বায়ী এর মধ্যে পার্থক্য

এটি একটি সময় জিজ্ঞাসা করা একটি গুরুত্বপূর্ণ প্রশ্ন । জাভাতে ক্ষণস্থায়ী এবং উদ্বায়ী কীওয়ার্ডের মধ্যে পার্থক্য কী?

অস্থির এবং ক্ষণস্থায়ী দুটি সম্পূর্ণ আলাদা কীওয়ার্ড যা ব্যবহৃত হয় । জাভা অবজেক্টের সিরিয়ালাইজেশনের সময় একটি ক্ষণস্থায়ী কীওয়ার্ড ব্যবহৃত হয়। উদ্বায়ী একাধিক থ্রেড দ্বারা পরিবর্তিত ভেরিয়েবলের দৃশ্যমানতার সাথে সম্পর্কিত।

এই কীওয়ার্ডগুলির মধ্যে একমাত্র মিলটি হ'ল এগুলি কম ব্যবহৃত বা অস্বাভাবিক কীওয়ার্ড এবং পাবলিক, স্ট্যাটিক বা চূড়ান্ত হিসাবে জনপ্রিয় নয়।

এটি আমাদের এই নিবন্ধের শেষে নিয়ে আসে যেখানে আমরা জাভাতে ট্রান্সিয়েন্ট সম্পর্কে শিখেছি। আশা করি এই টিউটোরিয়ালে আপনার সাথে যা ভাগ করা হয়েছে তার সাথে আপনি পরিষ্কার হয়ে গেছেন।

যদি আপনি 'জাভাতে ক্ষণস্থায়ী' প্রবন্ধটি প্রাসঙ্গিকভাবে পেয়েছেন তবে এটি দেখুন বিশ্বজুড়ে ছড়িয়ে থাকা 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা।

আমরা আপনার যাতায়াতের প্রতিটি পদক্ষেপে আপনাকে সহায়তা করতে এখানে এই জাভা সাক্ষাত্কারের প্রশ্নগুলির পাশাপাশি হয়ে উঠার জন্য আমরা একটি পাঠ্যক্রম নিয়ে এসেছি যা জাভা ডেভেলপার হতে চান এমন শিক্ষার্থী এবং পেশাদারদের জন্য তৈরি করা হয়েছে। কোর্সটি আপনাকে জাভা প্রোগ্রামিংয়ে একটি প্রধান সূচনা দেওয়ার জন্য এবং হাইবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।

আপনি যদি কোনও প্রশ্নের মুখোমুখি হন তবে 'জাভায় ট্রান্সিয়েন্ট' এর মন্তব্য বিভাগে আপনার সমস্ত প্রশ্ন জিজ্ঞাসা করতে দ্বিধা বোধ করবেন এবং আমাদের দলটি উত্তর দিতে পেরে খুশি হবে।