W jaki sposób Java wybiera, którego konstruktora użyć?

Nie jestem w stanie zrozumieć wyników następującego programu.

public class Confusing {

    private Confusing(Object o) {
        System.out.println("Object");
    }

    private Confusing(double[] dArray) {
        System.out.println("double array");
    }

    public static void main(String[] args) {
        new Confusing(null);
    }
}

Prawidłowe wyjście to „podwójna tablica”. DLACZEGO ten konstruktor został wybrany jako bardziej szczegółowy niż drugi, gdy oba mogą zaakceptować wartość null?

questionAnswers(2)

yourAnswerToTheQuestion