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

জাভাতে StringBuffer এবং StringBuilder এর পার্থক্য

StringBuffer এবং StringBuilder উভয়ই মিউটেবল ক্লাস, যেগুলো স্ট্রিং অবজেক্টের ওপর অপারেশন (রিভার্স, ক্যাটেনেশন ইত্যাদি) করতে দেয় নতুন অবজেক্ট বানানো ছাড়া। StringBuffer থ্রেড-সেফ (সিঙ্ক্রোনাইজড), StringBuilder থ্রেড-সেফ নয় — তাই StringBuilder দ্রুত। স্ট্রিং ক্যাটেনেশন + অপারেটর ইন্টারনালি StringBuffer বা StringBuilder ব্যবহার করে।

ক্রমিক নং কী StringBuffer StringBuilder
১ বেসিক জাভার শুরুতেই চালু হয়েছিল জাভা ৫-এ যোগ হয়েছে
২ সিঙ্ক্রোনাইজড হ্যাঁ, সিঙ্ক্রোনাইজড না, সিঙ্ক্রোনাইজড নয়
৩ পারফরম্যান্স থ্রেড-সেফ, একসাথে একাধিক থ্রেড এক্সেস করতে পারে না, তাই ধীর থ্রেড-সেফ নয়, তাই StringBuffer চেয়ে দ্রুত
৪ মিউটেবল হ্যাঁ, অবজেক্ট বানানো ছাড়া মডিফাই করা যায় হ্যাঁ, মিউটেবল
৫ স্টোরেজ হিপ হিপ

StringBuilder উদাহরণ

public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder builder = new StringBuilder("Hi");
        builder.append("Java 8");
        System.out.println("StringBuilderExample " + builder);
    }
}

StringBuffer উদাহরণ

public class StringBufferExample {
    public static void main(String[] args) {
        StringBuffer buffer = new StringBuffer("Hi");
        buffer.append("Java 8");
        System.out.println("StringBufferExample " + buffer);
    }
}

সুপারিশ: সিঙ্গেল থ্রেডেড এনভায়রনমেন্টে StringBuilder ব্যবহার করুন। মাল্টিথ্রেডেডে শেয়ারড বাফার হলে StringBuffer।

  1. জাভাতে Exception এবং Error-এর পার্থক্য

  2. জাভাতে Serialization এবং Externalization-এর পার্থক্য

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

  4. জাভাতে ArrayList এবং HashSet-এর পার্থক্য