Pull to refresh

Comments 10

Это одно из существенных изменений, внесенных в JDK 5
Об этом правда стоит писать в 2017?
Лучше бы написали о возможных NPE при анбоксинге. Далеко не все об этом помнят.
NullPointerException кидает при попытке обратиться по null ссылке, следовательно, если класс-обёртка содержит null, при распаковке возникнет исключение.

Главное чтобы ваша IDE помнила и предупреждала при случае :-)

В первом объекты не создаются, а берутся из pool и классы-обёртки имеют одну ссылку. В третьем же создаётся два объекта, потому что 200 не входит в диапазон Integer pool (-128..127), то есть у них разные ссылки. Если у примитивных типов оператор == сравнивает значение (если необходимо, операнды распространяются до наибольшего, затем происходит непосредственное побитовое сравнение), то у объектов проверяет указывают ли ссылки «на один и тот же объект».
вызывается статичный метод java.lang.Integer.valueOf(int), который кэширует значения от -128 до 127

Никакого кэшировани при вызове не будет происходить. IntegerCache инициализируется во время загрузки класса.

Integer iOb1 = 100;
Integer iOb2 = 100;
System.out.println(iOb1 == iOb2);


Integer iOb3 = new Integer(120);
Integer iOb4 = new Integer(120);
System.out.println(iOb3 == iOb4);


Integer iOb5 = 200;
Integer iOb6 = 200;
System.out.println(iOb5 == iOb6);


Ответ: в первом случае — true, во втором и третьем — false


А в чем разница между 1 и 3 случаями?

Извини, написал как комментарий, смотри чуть выше.
Sign up to leave a comment.

Articles