Простой способ убедиться, что существует только один экземпляр, - это использовать Enum.
public enum MyEnum {
NameOfSingleton("aPropertyValue");
private String aProperty;
private MyEnum(String aProperty) {
this.aProperty = aProperty
}
public getAProperty() {
return this.aProperty;
}
Использовать его так же просто.
MyEnum.NameOfSingleton.getAProperty();
Это на самом деле не решает проблемуваш вопрос равенства, но он отвечает вашим потребностям в одноэлементном экземпляре класса.