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

Java-এ == এবং equals() মেথডের পার্থক্য

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 == s2 true দেবে (String interning-এর কারণে)। কিন্তু new String() ব্যবহার করলে false দেবে।
  1. জাভাতে Collection এবং Collections-এর পার্থক্য

  2. জাভাতে wait() এবং sleep() মেথডের পার্থক্য

  3. জাভাতে paint() মেথড এবং repaint() মেথড-এর মধ্যে পার্থক্য কী?

  4. জাভাতে printStackTrace() এবং getMessage() মেথডের মধ্যে পার্থক্য