এই পোস্টে আমরা জাভাতে String এবং StringBuffer ক্লাসের পার্থক্য বুঝব।
String
- এটি একটি ইমিউটেবল (immutable) ক্লাস।
- অর্থাৎ ক্লাসের এলিমেন্টগুলো পরিবর্তন করা যায় না।
- এটি ধীর (slow)।
- স্ট্রিং ক্যাটেনেশন (concatenation) এর সময় কম মেমরি খরচ করে।
- কারণ প্রতিবার একটি নতুন ইনস্ট্যান্স তৈরি হয়।
- এটি Object ক্লাসের equals() মেথড ওভাররাইড করে।
- সুতরাং দুটি স্ট্রিং তুলনা করার জন্য 'equals' মেথড ব্যবহার করা যায়।
String ক্লাসের উদাহরণ:
public class StringDemo {
public static void main(String args[]) {
String palindrome = "Dot saw I was Tod";
int len = palindrome.length();
System.out.println("String Length is : " + len);
}
}
StringBuffer
- এটি একটি মিউটেবল (mutable) ক্লাস।
- অর্থাৎ এই ক্লাসের এলিমেন্টগুলো পরিবর্তন করা যায়।
- এটি দ্রুত (fast)।
- স্ট্রিং ক্যাটেনেশনের সময় কম মেমরি ব্যবহার করে।
- এই ক্লাস Object ক্লাসের equals() মেথড ওভাররাইড করে না।
StringBuffer ক্লাসের উদাহরণ:
public class Demo {
public static void main(String args[]) {
StringBuffer sBuffer = new StringBuffer("test");
sBuffer.append(" String Buffer");
System.out.println(sBuffer);
}
}