কম্পিউটার টিউটোরিয়াল

জাভায় মিউটেবল এবং ইমিউটেবল অবজেক্টের পার্থক্য


ইমিউটেবল অবজেক্ট: একবার তৈরি হলে স্টেট পরিবর্তন করা যায় না (যেমন String, Wrapper ক্লাস)। থ্রেড-সেফ, final ক্লাস হিসেবে ডিক্লেয়ার করা হয়।

মিউটেবল অবজেক্ট: স্টেট পরিবর্তন করা যায় (সেটার মেথড থাকে)। ডিফল্টভাবে সব ক্লাস মিউটেবল। থ্রেড-সেফ নয়।

ক্র. নংবিষয়মিউটেবলইমিউটেবল
১স্টেট পরিবর্তনসম্ভবসম্ভব নয়
২থ্রেড সেফটিনয়হ্যাঁ
৩final ক্লাসনয়হ্যাঁ (বাধ্যতামূলক)
৪উদাহরণসাধারণ ক্লাস (Setter সহ)String, Integer, Double ইত্যাদি

ইমিউটেবল ক্লাস উদাহরণ

public final class ImmutableClass {
    private final String laptop;
    public ImmutableClass(String laptop) { this.laptop = laptop; }
    public String getLaptop() { return laptop; }
}
public class Main {
    public static void main(String[] args) {
        ImmutableClass obj = new ImmutableClass("Dell");
        System.out.println(obj.getLaptop()); // Dell
    }
}

মিউটেবল ক্লাস উদাহরণ

public class MutableClass {
    private String laptop;
    public MutableClass(String laptop) { this.laptop = laptop; }
    public String getLaptop() { return laptop; }
    public void setLaptop(String laptop) { this.laptop = laptop; }
}
public class Main {
    public static void main(String[] args) {
        MutableClass obj = new MutableClass("Dell");
        System.out.println(obj.getLaptop()); // Dell
        obj.setLaptop("IBM");
        System.out.println(obj.getLaptop()); // IBM
    }
}
  1. HashMap এবং ConcurrentHashMap এর পার্থক্য

  2. Go এবং Java-এর পার্থক্য

  3. জাভাতে Comparable এবং Comparator-এর পার্থক্য

  4. পাইথনে ইটেরেবল (Iterable) এবং ইটেরেটর (Iterator) এর পার্থক্য