কেন ক্ষণস্থায়ী ভেরিয়েবল সিরিয়াল করা হয় না?
কেন ক্ষণস্থায়ী ভেরিয়েবল সিরিয়াল করা হয় না?

ভিডিও: কেন ক্ষণস্থায়ী ভেরিয়েবল সিরিয়াল করা হয় না?

ভিডিও: কেন ক্ষণস্থায়ী ভেরিয়েবল সিরিয়াল করা হয় না?
ভিডিও: জাভা সিরিয়ালাইজেশন একটি ভয়ঙ্কর ভুল ছিল 2024, নভেম্বর
Anonim

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

অনুরূপভাবে, ক্ষণস্থায়ী পরিবর্তনশীল সিরিয়াল করা যেতে পারে?

ক ক্ষণস্থায়ী পরিবর্তনশীল ইহা একটি পরিবর্তনশীল যে করতে পারা হবে না সিরিয়ালাইজড . জাভা ল্যাঙ্গুয়েজ স্পেসিফিকেশন অনুসারে [jls-8.3. 1.3] - " ভেরিয়েবল চিহ্নিত হতে পারে ক্ষণস্থায়ী ইঙ্গিত করার জন্য যে তারা একটি বস্তুর স্থায়ী অবস্থার অংশ নয়।"

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

এর পাশে, কেন স্ট্যাটিক এবং ক্ষণস্থায়ী ভেরিয়েবলগুলি সিরিয়াল করা হয় না?

স্ট্যাটিক ভেরিয়েবল : এইগুলো ভেরিয়েবল ক্রমিক করা হয় না , তাই deserialization সময় স্ট্যাটিক পরিবর্তনশীল মান ক্লাস থেকে লোড হবে। ক্ষণস্থায়ী ভেরিয়েবল : ক্ষণস্থায়ী ভেরিয়েবল ক্রমিক করা হয় না , তাই deserialization সময় যারা ভেরিয়েবল সংশ্লিষ্ট ডিফল্ট মান দিয়ে আরম্ভ করা হবে (যেমন: বস্তুর জন্য null, int 0)।

কেন স্ট্যাটিক ক্ষেত্র সিরিয়াল করা হয় না?

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

প্রস্তাবিত: