SQL: Как выбрать самую раннюю строку

Относительно Java 1.5 и автоупаковка существует важная "причуда", которая прибывает для игры при сравнении Целочисленных объектов.

В Java, Целочисленные объекты со значениями-128 к 127 неизменны (то есть, для одного конкретного целочисленного значения, скажите 23, все Целочисленные объекты, которые инстанцируют через Вашу программу со значением 23 точки к точный тот же объект).

Пример, это возвращает true:

Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2); //  true

, В то время как это возвращает false:

Integer i1 = new Integer(128);
Integer i2 = new Integer(128);
System.out.println(i1 == i2); //  false

== выдерживает сравнение ссылкой (делает точку переменных к тому же объекту).

Этот результат может или не может отличаться, в зависимости от какой JVM Вы используете. Автоупаковка спецификации для Java 1.5 требует что целые числа (-128 к 127) всегда поле к тому же интерфейсному объекту.

решение для А? =), нужно всегда использовать Integer.equals () метод при сравнении Целочисленных объектов.

System.out.println(i1.equals(i2)); //  true

[еще 1114] информация в java.net Пример в bexhuff.com

30
задан dvanaria 20 April 2011 в 21:24
поделиться