Здравствуйте, joybell0, Вы писали:
J>Здравствуйте, LeonidV, Вы писали:
LV>>Не вижу никакой не правильности с точки зрения логики. Существуют два указателя на разные объекты. Почему они должны быть равны?
J>Ну а не смущает, что
J>J>new Integer(1).equals(new Integer(1)) == true
J>
J>?
А почему это должно смущать?
J>Тоже два указателя на разные объекты.
Нет, это два указателя на один объект. Неизменяемый. Размещенный в пуле объектов.
Все целочисленные типы-обертки для чисел меньше 128 используют пул.
Так же пул используется для строк, данных в кавычках.
J>equals, как правило, проверяет логическое равенство объектов. А для того, чтобы сравнить ссылки, всегда есть оператор == . Поэтому не вижу причины, по которой equals для массивов не мог бы делать то, что сейчас делает Arrays.equals
А зачем усложнять класс массива утилитарными операциями, которые не требуют доступа к "внутренностям" класса и, к тому же, используются не часто? Вот их и вынесли в пакет java.util.