Я понимаю разницу между == и .equals. Здесь есть много других вопросов, объясняющих разницу в деталях, например. этот: В чем разница между .Equals и == эта: Поразрядное равенство среди многих других.
Мой вопрос: почему у них есть оба (я понимаю, что должна быть очень хорошая причина) - они оба, похоже, делают одно и то же (если не переопределять по-другому).
Когда == будет перегружаться по-другому, как переопределить .equals?