I am not able to understand the output of the following program.
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);
    }
}
The correct output is "double array". WHy was this constructor chosen as more specific than the other when both can accept null?
 
     
     
    