Ответ на ваш второй вопрос - да, «id», который вы видите в отладчике Eclipse, уникальным образом идентифицирует объект, и поэтому изменение в нем означает, что был создан новый объект.Так, например:
Integer i = 55;
Integer j = new Integer(55);
Integer k = Integer.valueOf(55);
Здесь i и k будут иметь одинаковые идентификаторы, поскольку они ссылаются на один и тот же объект;j будет другим.
Адрес памяти одного из этих объектов на самом деле не является полезной информацией, поскольку объекты перемещаются в памяти.Все, что вы можете знать, это то, что если я == k, это один и тот же объект.(Так вот, я == k, но я! = J).