ობიექტების შედარება (Java)

ვიცით, რომ ობიექტების შედარებისას არის რამდენიმე ვარიანტი:

== შედარების ოპერატორის საშუალებით ვადგენთ მიუთითებენ (refer) თუ არა მითითებები ერთსა და იმავე ობიექტზე;

equals() მეთოდი – ვადგენთ აზრობრივად არის ორი ობიექტი ერთმანეთის ტოლი თუ არა.

 

რა ხდება wrapper კლასების შემთხვევაში? თავიდან ცოტა უცნაურად მომეჩვენა…

ასეთი კითხვა:
 

Integer i1 = 1000;
Integer i2 = 1000; 

if (i1 != i2) System.out.println("Different objects");
if (i1.equals(i2)) System.out.println("Meaningfully equal");

 

კოდის გაშვების შედეგად ვიღებთ:
 

Different objects
Meaningfully equal 

რა შედეგი ექნება ამ კოდს?

Integer i1 = 10;
Integer i2 = 10;

if (i1 == i2) System.out.println("Same objects");
if (i1.equals(i2)) System.out.println("Meaningfully equal");