Güzel yerden yakalamışsın.
Normalde java'da karşılaştırma için == kullanılıyor. Eğer karşılaştırdığın değerler boxed/sınıf bazlı değerler ise ilk karşılaştırılabilecek olan değer bu sınıfların içeriği olmuyor. Keza sınıfların içinde birden fazla bilgi bulunacağı için nasıl karşılaştırılması gerektiğini anlamaz derleyici. Bunun yerine sınıf değişkenlerinin gösterdiği adresler aynı mı diye kontrol eder.
Ama yapı itibariyle bakarsan, primitive(ilkel) tipler zaten sınıf bazlı değişkenler değil ve içinde barındırdıkları bilgi bir adres bilgisi değil. Bu yüzden direk olarak değer karşılaştırılması yapılır.
.equals metoduna gelince, sınıf bazlı veri tiplerini karşılaştırmak istediğin zaman, bir sınıfın iki mensubunu nasıl karşılaştırmalıyız sorusunun cevabı bu metod içinde verilir. Yani sınıfın(class instance, türkçesini bilmiyorum) içindeki hangi alanlar birbirine eşitse bu iki sınıf birbirine eşit denir, bu sorunun cevabını verdiğin alandır. Java da standard olarak iki sınıfı karşılaştıracağı zaman equals metodunu otomatikmen çağırır.