"Для сравнения объектов по их внутреннему содержанию используют специальный метод equals." Нас тут вроде как за деньги обучают? А как тогда понимать вот это:
class BlackBox {
    int varA;
    int varB;

    BlackBox(int varA, int varB){
        this.varA = varA;
        this.varB = varB;
    }
}
class DemoBlackBox {
    public static void main(String[] args) {
        BlackBox object1 = new BlackBox(5, 10); //object1 идентичен object2
        BlackBox object2 = new BlackBox(5, 10); //object1 идентичен object2
        BlackBox object3 = object1;                       //ссылаются на один и тот же объект
        System.out.println(object1.equals(object2));  //false - но это противоречит вашим словам
        System.out.println(object1==object2);            //false
        System.out.println(object3.equals(object1));  //true - ссылки одинаковые
почему нас вводят в заблуждение, подавая ложную информацию? почему я, имея очень слабое представление о тонкостях джавы, должен сидеть и 2 часа ломать голову, почему у меня equals не работает?