Сравняване на

Когато присвояваме целочислена стойност на целочислен обект, стойността се автоматично boxing в целочислен обект. Например твърдението "Integer x = 10" създава обект "x" със стойност 10.

Но какъв ще е изхода от следния пример:

public class Application {
    public static void main(String args[]) {
         Integer x = 400, y = 400;
         if (x == y)
            System.out.println("Едни и същи");
         else
            System.out.println("Не са едни и същи");
    }
}

Но какъв може да се обясни изхода от следния пример:

public class Application {
    public static void main(String args[]) {
         Integer x = 40, y = 40;
         if (x == y)
            System.out.println("Едни и същи");
         else
            System.out.println("Не са едни и същи");
    }
}

Ако изрично създадем нови обекти с помощта на оператор new, получаваме изхода като "Не са едни и същи". Вижте следната Java програма където не се използва valueOf().

public class Application {
    public static void main (String args[]) {
          Integer x = new Integer(40), y = new Integer(40);
         if (x == y)
            System.out.println("Едни и същи");
         else
            System.out.println("Не са едни и същи");
    }
}

С получената информация до тук, какъв ще е изхода от следния пример, защо?

public class Application {
    public static void main(String[] args) {
          Integer X = new Integer(10);
          Integer Y = 10;
          
          System.out.println(X == Y);
    }
}

Last updated