BigDecimal igual a () versus compareTo ()

Considere a classe de teste simples:

import java.math.BigDecimal;

/**
 * @author The Elite Gentleman
 *
 */
public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BigDecimal x = new BigDecimal("1");
        BigDecimal y = new BigDecimal("1.00");
        System.out.println(x.equals(y));
        System.out.println(x.compareTo(y) == 0 ? "true": "false");
    }

}

Você pode (conscientemente) dizer quex é igual ay (não referência de objeto), mas quando você executa o programa, o seguinte resultado mostra:

false
true

Pergunta: Qual é a diferença entrecompareTo() eequals() emBigDecimal aquelecompareTo pode determinar quex é igual ay?

PS: Vejo que o BigDecimal tem uminflate() método emequals() método. O queinflate() realmente?

questionAnswers(3)

yourAnswerToTheQuestion