Java-এ == অপারেটর এবং equals() মেথডের পার্থক্য
Java-এ == এবং equals() দুটোই দুটি ভেরিয়েবল বা অবজেক্টের সমতা যাচাই করতে ব্যবহৃত হয়। কিন্তু তাদের কাজের ধরন ভিন্ন।
মূল পার্থক্যগুলো
| ক্রমিক নং | বিষয় | == |
equals() মেথড |
|---|---|---|---|
| ১ | টাইপ | == একটি অপারেটর। |
equals() হলো Object ক্লাসের একটি মেথড। |
| ২ | তুলনা | রেফারেন্স তুলনার জন্য ব্যবহৃত হয়। == চেক করে দুটি রেফারেন্স একই মেমরি লোকেশনকে পয়েন্ট করছে কিনা। |
কন্টেন্ট তুলনার জন্য ব্যবহৃত হয়। equals() কন্টেন্ট ইভ্যালুয়েট করে সমতা চেক করে। |
| ৩ | অভিড্রাইড (Override) | == অপারেটর ওভাররাইড করা যায় না। |
equals() মেথড ওভাররাইড করা যায় (অথবা Object.equals() ব্যবহার হয়)। |
উদাহরণ: == বনাম equals()
JavaTester.java
public class JavaTester {
public static void main(String args[]) {
String s1 = new String("TUTORIALSPOINT");
String s2 = new String("TUTORIALSPOINT");
// রেফারেন্স তুলনা
System.out.println(s1 == s2); // false (দুটি আলাদা অবজেক্ট)
// কন্টেন্ট তুলনা
System.out.println(s1.equals(s2)); // true (কন্টেন্ট একই)
// প্রিমিটিভ টাইপ
System.out.println(10 == 10); // true
System.out.println('a' == 'a'); // true
}
}
আউটপুট
false true true true
প্রয়োগিক নির্দেশনা
- প্রিমিটিভ টাইপ (int, char, boolean ইত্যাদি):
==ব্যবহার করুন। - অবজেক্ট (String, Custom Class ইত্যাদি): কন্টেন্ট তুলনার জন্য
equals()ব্যবহার করুন। - String Pool:
String s1 = "hello"; String s2 = "hello";হলেs1 == s2true দেবে (String interning-এর কারণে)। কিন্তুnew String()ব্যবহার করলে false দেবে।