সিরিয়ালাইজেশন এবং এক্সটারনালাইজেশন উভয়ই একটি বস্তুকে স্ট্রিম বাইটে রূপান্তর করার এবং ডাটাবেস বা মেমরিতে বাইট স্ট্রিম সংরক্ষণ করার প্রক্রিয়া। যে ক্লাসটি java.io.Serializable ইন্টারফেস প্রয়োগ করে সেটিকে সিরিয়ালাইজ করা যেতে পারে। অন্যদিকে, অ্যাপ্লিকেশনের প্রয়োজনীয়তার উপর ভিত্তি করে কাস্টম সিরিয়ালাইজেশনের জন্য ব্যবহৃত বহিঃকরণ। বাহ্যিকীকরণ java.io.Serializable প্রসারিত করে।
Sr. না। | কী | ক্রমিকীকরণ | বহির্ভূতকরণ |
---|---|---|---|
1 | ইন্টারফেস | ক্রমিকীকরণ একটি মার্কার ইন্টারফেস | বাহ্যিকীকরণে দুটি পদ্ধতি রয়েছে রিড এক্সটার্নাল এবং রাইট এক্সটার্নাল। |
2 | বাস্তবায়ন যুক্তি | যে ক্লাসটি এই ইন্টারফেসটি বাস্তবায়ন করছে তারা JVM কে জাভা অবজেক্টকে সিরিয়ালাইজ করার বা স্থায়ী করার দায়িত্ব দেয়। JVM সিরিয়ালাইজেশনের জন্য readObject এবং writeObject ব্যবহার করে | বহিঃকরণ রিডএক্সটার্নাল এবং রাইট এক্সটার্নাল মেথড ওভাররাইড করে অ্যাপ্লিকেশনে ইমপ্লিমেন্টেশন লজিক কন্ট্রোল প্রদান করে। |
3 | ভেরিয়েবল উপেক্ষা করার উপায় | ক্রমিকীকরণে, JVM জাভা অবজেক্টের সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশনের সময় ক্ষণস্থায়ী পরিবর্তনশীলকে উপেক্ষা করে | জাভা অবজেক্টের বাহ্যিকীকরণের সময় কিছু ভেরিয়েবল উপেক্ষা করার জন্য প্রোগ্রামার তাদের নিজস্ব যুক্তি লিখতে পারে |
4 | পারফরম্যান্স | সিরিয়ালাইজেবল ইন্টারফেসে প্রতিফলন ব্যবহার করে যা তুলনামূলকভাবে ধীর কর্মক্ষমতা সৃষ্টি করে। | Externalizable বাস্তবায়ন পদ্ধতির উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়। |
5 | উত্তরাধিকার সহ অবজেক্ট সিরিয়ালাইজেশন | 1. যদি সুপারক্লাসটি সিরিয়ালাইজযোগ্য না হয় তবে সাবক্লাসটি এখনও সিরিয়াল করা যেতে পারে। 2. যদি একটি সাবক্লাস ক্রমিক না হয় তবে সুপারক্লাস স্বয়ংক্রিয়ভাবে ক্রমিক করা যায় | আমরা এটিকে বাহ্যিকভাবে প্রয়োগ করতে পারি। |
বহির্ভূত করার উদাহরণ
class ExternalizableExample implements Externalizable { Integer id; @Override public void writeExternal(ObjectOutput out) throws IOException { out.writeInt( id ); } @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { this.id = in.readInt(); } }
ক্রমিকযোগ্যতার উদাহরণ
class SerializableExample implements Serializable { private static final long serialVersionUID = 5081877L; String name; }