Можно ли сравнивать неизменяемые объекты в Java, используя == вместо равных

Рассмотрим две ссылки типа Integer, которые вызывают статический фабричный метод valueOf, как показано ниже:-

    Integer a = Integer.valueOf("10"); 
    Integer b = Integer.valueOf("10"); 

Учитывая, что Integer неизменяем, можно ли сравнивать a и b с помощью == вместо использования метода equals. Я предполагаю, что метод valueOf гарантирует, что создан только один экземпляр Integer со значением 10 и ссылка на этот экземпляр возвращается для каждого Целого числа, созданного со значением 10.

В общем, можно ли сравнивать две ссылки неизменяемого класса, созданные с помощью вызова одного и того же статического фабричного метода, используя == вместо равных?

Править: В качестве примера использовался класс Integer.Я знаю, что Intgers до 127 вернет true, если их сравнить с помощью ==. Что мне нужно знать, так это то, что когда я создаю свой собственный неизменяемый класс, скажем, MyImmutable с помощью метода create(), который гарантирует, что не будут созданы дубликаты объектов MyImmutable, будет ли нормально, если я сравню 2 ссылки MyImmutable, созданные с помощью метода create, используя == вместо равных.

6
задан CKing 10 June 2012 в 17:55
поделиться