формат строки Python, вызывающий функцию

Давайте сделаем несколько примеров:

Случай -1:

       public static void main(String[] args) {
            Integer i1 = 1000;
            int i2 = 1000;
            boolean compared = (i1 == i2);
            System.out.println(compared);
        }

Байт-код:

....
        16: if_icmpne     23 // comparing 2 integers
....

Случай -2:

public static void main(String[] args) {
    Integer i1 = 1000;
    Integer i2 = 1000;
    //int i2 = 1000;
    boolean compared = (i1 == i2);
    System.out.println(compared);
}

Bytecode:

...
     16: if_acmpne     23 // comparing references
....

Итак, в случае сравнения Integer и int с == Integer распаковывается в int, а затем сравнение

В случае сравнения 2 Integers сравниваются ссылки 2 Integers.

18
задан Hassek 5 November 2013 в 19:05
поделиться