Рубрики

Сравнение объектов Autoboxed Integer в Java

Когда мы присваиваем целочисленное значение объекту Integer, значение автоматически помещается в объект Integer. Например, выражение «Integer x = 10» создает объект «x» со значением 10.

Ниже приведены некоторые интересные вопросы для вывода, основанные на сравнении объектов Autoboxed Integer.

Предсказать вывод следующей Java-программы

// имя файла: Main.java

public class Main {

    public static void main(String args[]) {

         Integer x = 400, y = 400;

         if (x == y)

            System.out.println("Same");

         else

            System.out.println("Not Same");

    }

}

Выход:

Not Same

Поскольку x и y относятся к разным объектам, мы получаем вывод «Not Same»

Вывод следующей программы — сюрприз от Java.

// имя файла: Main.java

public class Main {

    public static void main(String args[]) {

         Integer x = 40, y = 40;

         if (x == y)

            System.out.println("Same");

         else

            System.out.println("Not Same");

    }

}

Выход:

Same

В Java значения от -128 до 127 кэшируются, поэтому возвращаются те же объекты. Реализация valueOf () использует кэшированные объекты, если значение находится в диапазоне от -128 до 127.

Если мы явно создаем объекты Integer с помощью оператора new, мы получаем вывод «Not Same». Смотрите следующую программу Java. В следующей программе valueOf () не используется.

// имя файла: Main.java

public class Main {

    public static void main(String args[]) {

          Integer x = new Integer(40), y = new Integer(40);

         if (x == y)

            System.out.println("Same");

         else

            System.out.println("Not Same");

    }

}

Выход:

Not Same

Прогнозировать вывод следующей программы. Этот пример внес Бишал Дубей .

class GFG

{

    public static void main(String[] args)

    {

    Integer X = new Integer(10);

    Integer Y = 10;

  

    // Из-за автобокса новый объект Wrapper

    // создан, на который указывает Y

    System.out.println(X == Y);

    }

}

Выход:

false

Объяснение: Здесь будут созданы два объекта. Первый объект, на который указывает X из-за вызова нового оператора, а второй объект будет создан из-за автобокса.

Эта статья составлена Абхай Рати . Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Сравнение объектов Autoboxed Integer в Java

0.00 (0%) 0 votes